查找文件所在位置:whereis which find locate

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

你可能感兴趣的:(查找文件所在位置:whereis which find locate)