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