- which
- 作用:which指令会在环境变量$PATH设置的目录里查找符合条件的文件。
- 格式:
which [文件...]
- 参数:
-n<文件名长度> 指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名。
-p<文件名长度> 与-n参数相同,但此处的<文件名长度>包括了文件的路径。
-w 指定输出时栏位的宽度。
-V 显示版本信息
- 案例:
which bash
输出:
/bin/bash #bash可执行程序的绝对路径
- whereis
- 作用:
该指令会在特定目录中查找符合条件的文件。这些文件应属于原始代码、二进制文件,或是帮助文件。
该指令只能用于查找二进制文件、源代码文件和man手册页,一般文件的定位需使用locate命令 - 格式:
whereis [-bfmsu][-B <目录>...][-M <目录>...][-S <目录>...][文件...]
- 参数:
-b
~~~~~~~~~~
只查找二进制文件
-m
~~~~~~~~~~
只查找说明文件
-s
~~~~~~~~~~~
只查找原始代码文件
-B<目录> 只在设置的目录下查找二进制文件。
-f
~~~~~~~~~~~~
不显示文件名前的路径名称。
-M<目录> 只在设置的目录下查找说明文件。
-S<目录> 只在设置的目录下查找原始代码文件。
-u
~~~~~~~~~~
查找不包含指定类型的文件。
- locate
- 作用:用于查找符合条件的文档,他会去 保存文档和目录名称的数据库内,查找合乎范本样式条件的文档或目录;
- 格式:
locate [-d ][--help][--version][范本样式...]
- 参数:
-d或–database= 配置locate指令使用的数据库。locate指令预设的数据库位于/var/lib/slocate目录里,文档名为slocate.db,您可使用 这个参数另行指定 - 例子:
locate passwd
查找passwd文件 - 注意:
locate与find 不同: find 是去硬盘找,locate 只在/var/lib/slocate资料库中找;
locate的速度比find快,它并不是真的查找,而是查数据库,一般文件数据库在/var/lib/slocate/slocate.db中,所以locate的查找并不是实时的,而是以数据库的更新为准,一般是系统自己维护,也可以手工升级数据库 ,命令为locate -u
- find
- 用于找到某个特定的文件或文件夹
- 格式:
find /path/ [-name] [-type] [filename]
- -name 选项可以根据文件名称进行检索(区分大小写)。如需要忽略文件名中的大小写,可以使用 -iname 选项
- ? 可以表示任意一个单一的符号
find /usr -name '????'
查找 /usr 目录下所有文件名刚好为 4 个字符的文件- 可以表示任意数量(包括 0)的未知符号
find /usr -name '*.txt'
查找 /usr 目录下所有文件名以 .txt 结尾的文件 - 你需要在搜索时匹配某个文件或目录的完整路径,而不仅仅是匹配文件名。可以使用
-path
或 -ipath
选项
find /usr -path '*/src/*.txt'
找到位于usr文件下的所有txt的文件,且其父目录为src - -type 选项最常用的参数如下:
f: 文件
d: 目录
l: 符号链接 - find 命令支持 -empty 选项用来检索为空的文件或目录
案例:find /usr -type d - empty
找到所有空文件夹 - find 命令也允许用户对当前的匹配条件进行“反义”
案例1:find /usr -type f ! -name '*.txt'
找到usr目录下所有不为txt的文件
案例2:find /usr -type d ! -empty
找到usr母驴下所有不为空的目录