whereis
where命令只能用于程序名的搜索,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。如果省略参数,则返回所有信息
// 使用whereis
$ whereis git
/usr/bin/git
which
which命令的作用是,在PATH变量指定的路径中,搜索某个系统命令的为位置,并且返回第一个搜索结果。也就是说,使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪个位置的命令
// 使用which
$ which git
/usr/local/bin/git
find
find是最强大的查找命令,同时,也最慢。
// 语法
$ find [指定目录] [指定条件] [指定动作]
- 指定目录:所要搜索的目录及其所有子目录。默认为当前目录
- 指定条件:所要搜索的文件的特征
- 指定动作:对搜索结果进行特定的处理
// 使用
find的使用实例:
- 搜索当前目录中,所有以code开头的文件
$ find . name 'code*'
- 搜索当前目录中,所有以code开头的文件,并展示详细信息
$ find . -name 'code*' -ls
- 搜索当前目录中,所有过去10分钟更新过的普通文件,如果不加-type f参数,则搜索普通文件+特殊文件+目录
$ find . -type f -mmin -10
locate
与find的关系:find -name 因为它不搜索目录,搜索的是/usr/local/locatedb数据库,比find快,但是对于最近更新的文件,有可能搜索不到。使用前,可以先执行updatedb(mac可以执行sudo /usr/libexec/locate.updatedb)。
- 搜索etc目录下所有以是开头的文件
$ locate /etc/sh
- 搜索etc目录下所有以sh开头的文件
$ locate /etc/sh
- 搜索用户主目录下,所有以code开头的文件
$ locate ~/m
- 搜索用户主目录下,所有以code开头的文件, 并且忽略大小写
$ locate -i ~/m