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