linux中5条查找命令

时间:2023-03-08 16:30:12
linux中5条查找命令

1 which

which命令的作用是,在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。

which [文件...]

参 数:

-n<文件名长度> 指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名。

-p<文件名长度> 与-n参数相同,但此处的<文件名长度>包括了文件的路径。

-w 指定输出时栏位的宽度。

-V 显示版本信息

linux中5条查找命令

奇怪,我们经常用到的cd命令怎么找不到呢?这是因为 cd 是bash 内建的指令, which 预设是找 PATH 内所规范的目录,所以找不到。我们可以通过type命令来看看

 

2  type

type命令其实不能算查找命令,它是用来区分某个命令到底是由shell自带的,还是由shell外部的独立二进制文件提供的。如果一个命令是外部命令,那么使用-p参数,会显示该命令的路径,相当于which命令

linux中5条查找命令

 

linux中5条查找命令

3 whereis

whereis命令用来查找命令的位置,包括执行文件、源代码和手册页文件。如果要查找任意文件的所在位置,可以使用locate或者find命令。使用说明如下

whereis [-bfmsu][-B ...][-M ...][-S ...][文件...]

-b        只查找二进制文件。
-B       只在设置的目录下查找二进制文件。
-f       不显示文件名前的路径名称。
-m     只查找说明文件。
-M     只在设置的目录下查找说明文件。
-s       只查找原始代码文件。
-S      只在设置的目录下查找原始代码文件。
-u      查找不包含指定类型的文件

linux中5条查找命令

4 find

find最强大的文件搜索命令,命令使用方式如下

linux中5条查找命令

find [PATH] [option] [action]

常用的参数查找方式
时间查找参数:
-atime n :将n*24小时内存取过的的文件列出来
-ctime n :将n*24小时内改变、新增的文件或者目录列出来
-mtime n :将n*24小时内修改过的文件或者目录列出来
-newer file :把比file还要新的文件列出来

名称查找参数:
-gid n       :寻找群组ID为n的文件
-group name  :寻找群组名称为name的文件
-uid n       :寻找拥有者ID为n的文件
-user name   :寻找用户者名称为name的文件
-name file   :寻找文件名为file的文件(可以使用通配符)

find中的时间参数很有意思,具体理解见下图

linux中5条查找命令

find命令非常的强队,更详细的使用方式参考man find 或者鸟哥的私房菜这本书http://vbird.dic.ksu.edu.tw/linux_basic/0220filemanager_5.php#find

5 locate

locate命令其实是"find -name"的另一种写法,但是要比后者快得多,原因在于它不搜索具体目录,而是搜索一个数据库(/var/lib/locatedb),这个数据库中含有本地所有文件信息。Linux系统自动创建这个数据库,并且每天自动更新一次,所以使用locate命令查不到最新变动过的文件。为了避免这种情况,可以在使用locate之前,先使用updatedb命令,手动更新数据库。

locate命令的使用实例:

$ locate /etc/sh

搜索etc目录下所有以sh开头的文件。

$ locate ~/m

搜索用户主目录下,所有以m开头的文件。

$ locate -i ~/m

搜索用户主目录下,所有以m开头的文件,并且忽略大小写。

linux中5条查找命令

6 参考文献

  1. 鸟哥的私房菜:http://vbird.dic.ksu.edu.tw/linux_basic/0220filemanager_5.php#file_find_cmd
  2. http://www.ruanyifeng.com/blog/2009/10/5_ways_to_search_for_files_using_the_terminal.html