缘起
在一开始使用 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
手册页。
:)
网友评论