whereis

whereis 只能搜索二进制文件(-b),man 帮助文件(-m)和源代码文件(-s)。
另外,它的搜索非常的快,因为它并没有从硬盘中一一查询,而是直接从自带的数据库中进行查找,也正因此其搜索范围非常有限。

  1. $ whereis who
  2. $ whereis find

locate

和whereis 一样, locate 也是通过数据库进行查找,它通过查询 /var/lib/mlocate/mlocate.db 数据库来检索信息。

由于该数据库也不是时时更新,如果要搜索刚添加的文件,需要使用 updatedb

locate 命令也不是系统内建的,需要我们下载。

$ sudo apt-get update
$ sudo apt-get install locate
$ sudo updatedb

-c 参数可以统计数目, -i 可以忽略大小写查找。

which

一般用来查找命令。

find

find 应该是这几个命令中最强大的了,它不但可以通过文件类型、文件名进行查找而且可以根据文件的属性(如文件的时间戳,文件的权限等)进行搜索。基本命令格式为 find [path][option] [action]

在/etc/ 下查找interfaces 的文件或目录。

$ sudo find /etc/ -name interfaces

通过时间查找

find 提供了可以通过时间来查找文件的方式。
image.png

比如列出工作目录下当天修改过的文件。

$ find ~ -mtime 0

列出工作目录下比etc 目录新的文件。

$ find ~ -newer /etc