搜索文件的路径(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
posted @ 2019-07-20 18:41  Akiz  阅读(1474)  评论(0编辑  收藏  举报