搜索文件的路径(4条命令)
which命令
which命令:显示(shell)命令的完整路径。
格式:which [options] [--] programname [...]
参数:
参数 | 作用 |
---|---|
-n | -n<文件名长度>:制定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名; |
-p | 与-n参数相同,但此处的<文件名长度>包含了文件的路径; |
-w | 指定输出时栏位的宽度; |
-V | 显示版本信息。 |
例子:
[root@xxx ~]# which pwd
/usr/bin/pwd
find命令
find命令:用于按照指定条件来查找文件
格式:“find [查找路径] 寻找条件 操作”。
参数:
参数 | 作用 |
---|---|
-name | 匹配名称 |
-perm | 匹配权限(mode为完全匹配,-mode为包含即可) |
-user | 匹配所有者 |
-group | 匹配所有组 |
-mtime -n +n | 匹配修改内容的时间(-n指n天以内,+n指n天以前) |
-atime -n +n | 匹配访问文件的时间(-n指n天以内,+n指n天以前) |
-ctime -n +n | 匹配修改文件权限的时间(-n指n天以内,+n指n天以前) |
-nouser | 匹配无所有者的文件 |
-nogroup | 匹配无所有组的文件 |
-newer f1 !f2 | 匹配比文件f1新但比f2旧的文件 |
--type b/d/c/p/l/f | 匹配文件类型(后面的字母参数依次表示块设备、目录、字符设备、管道、链接文件、文本文件) |
-size | 匹配文件的大小(+50KB为查找超过50KB的文件,而-50KB为查找小于50KB的文件) |
-prune | 忽略某个目录 |
-exec …… {}; | 后面可跟用于进一步处理搜索结果的命令(下文会有演示) |
whereis命令
whereis命令:定位指令的二进制程序、源代码文件和man手册页等相关文件的路径。
格式:whereis [options] [-BMS directory... -f] name...
参数:
参数 | 作用 |
---|---|
-b | 只查找二进制文件; |
-B | 只在设置的目录下查找二进制文件; |
-f | 不显示文件名前的路径名称; |
-m | 只查找说明文件; |
-M | 只在设置的目录下查找说明文件; |
-s | 只查找原始代码文件; |
-S | 只在设置的目录下查找原始代码文件; |
-u | 查找不包含指定类型的文件。 |
例子:
[root@xxx ~]# whereis ls
ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz
# 查找man手册页
[root@xxx ~]# whereis ls -m
ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz
locate命令
locate命令:通过名字查找文件
格式:locate [OPTION]... PATTERN...
参数:
参数 | 作用 |
---|---|
-d<目录>或--database=<目录> | 指定数据库所在的目录; |
-u | 更新slocate数据库; |
例子:
# 查找sh开头的文件
[root@xxx ~]# locate /etc/sh
/etc/shadow
/etc/shadow-
/etc/shells