Linux 命令之查找

作者: wagoo | 来源:发表于2018-11-23 13:30 被阅读1次
    image

    缘起

    在一开始使用 Linux 时,使用的是桌面版本,所以一开始都是用系统里的文件管理器进行文件搜索。但是后来终端用的多了,就开始不太喜欢要切换来切换去了。这样一来,在终端界面下进行搜索就成了绕不过去的一个命令。下面就介绍一下我所了解的几个搜索命令。

    find

    其实 find 命令应该是最强大有用,但又是相对困难的一个。当然如果只是简单的使用的话,还是没有什么问题的。

    举一个最常用的例子

    $ find Documents -name test
    Documents/test
    

    如果不使用路径选项,默认是当前目录下。-name 用于指定要搜索的文件名。

    你也可以进行匹配搜索

    $ find Documents -name "*.md"
    Documents/hello.md
    Documents/test.md
    

    这是我在使用 find 时最常用的两个。但是之前说过了,这个命令相当强大,所以它还支持相当多的参数,这些就根据你自己的需要查看 man 手册学习吧。

    最后提醒一点,除非特殊情况,不要把文件的搜索路径设置的太宽泛(例如根目录),这样会导致 find 的运行过程非常缓慢。我会告诉你我曾经这样做但是半天等不出来结果吗

    whereis

    whereis 用于定位命令的二进制文件、源文件和手册页文件。
    例如,下面的指令会直接列出指定命令的二进制文件、源文件和手册页文件的位置。

    $ whereis ls
    ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/man1/ls.1p.gz
    

    或是添加其他的可选项指定文件的类型或是在指定目录中进行搜索。下面举两个在 man 手册页中列出的例子

    $ whereis  -bm ls -m gcc
    ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/man1/ls.1p.gz
    gcc: /usr/share/man/man1/gcc.1.gz /usr/share/info/gcc.info.gz
    $ whereis -m ls -M /usr/share/man/man1 -f cal
    ls: /usr/share/man/man1/ls.1.gz /usr/share/man/man1/ls.1p.gz
    cal: /usr/share/man/man1/cal.1.gz /usr/share/man/man1/cal.1p.gz
    

    -b -m -s 这三个参数用于指定要搜索的命令的的类型(二进制,手册页文件,源文件)。
    -B -M -S 如果你要在某个指定目录中搜索指定命令的相应的文件(二进制,手册页,源文件),就需要这三个参数。

    which

    which 命令用于显示可执行文件的路径。如果该 shell 命令是 shell 内建的命令,会返回 shell built-in command,如果是 PATH 环境变量下设定的那些,则会返回对应的路径。

    $ which cd  
    cd: shell built-in command
    $ which java
    /usr/bin/java
    

    另外还有一些,比如

    $ which ls
    ls: aliased to ls --color=tty
    

    这说明我们在终端输入的 ls 命令其实是 ls --color=tty 的别名。ls --color=tty 就是把终端的字符都以彩色形式输出。

    了解更多

    有关这些命令的详细内容,请参阅 man 手册页。

    :)


    相关文章

      网友评论

        本文标题:Linux 命令之查找

        本文链接:https://www.haomeiwen.com/subject/loljqqtx.html