Linux命令学习七:find、whereis、which、locate


查找文件或目录:find

????find命令将从指定的目录开始向下递归查找各个子目录,将满足条件的结果输出 到终端。

基本语法

find [指定目录] [参数]

参数说明

参数 说明
-name 按照指定的文件名进行查找
-user 查找属于某个用户的文件
-size 按照指定的文件大小进行查找。

实例

# 从根目录开始查找,列出root用户所有文件大小大于5G的文件
$ find / -user root -size +20G
# 查找当前目录下,所有文件后缀为 .cfg 的文件
$ find . -name "*.cfg"

快速定位文件路径:locate

????locate命令维护了一个本地的数据库,每次进行搜索的时候,都会从locate的数据库中查找并返回匹配的结果。但是这个数据库并不会自动更新,就是说,磁盘中新添加了文件,这个数据库并不会自动加入这些新增加的文件。locate命令的数据库需要手工维护,每次进行搜索前可以手工先进行数据库的升级。

安装locate

????locate在最小化安装的系统中并没有安装,可以通过yum或者dnf命令进行安装。

yum install -y locate

????由于locate命令是基于数据库查询,所以在查询 前,最好都先更新一下数据库

$ updatedb

基本语法

locate 文件名/目录名

实例

????查找文件名包含了passwd的文件

$ locate passwd
/usr/share/man/zh_CN/man1/gpasswd.1.gz
/usr/share/man/zh_CN/man8/chgpasswd.8.gz
/usr/share/man/zh_CN/man8/chpasswd.8.gz
/usr/share/man/zh_TW/man8/chpasswd.8.gz
/var/lib/sss/mc/passwd

文件查找命令:which

????跟find命令不一样,which命令是在环境变量$PATH中进行查找符合条件的文件

基本语法

which [选项] 文件名

参数选项

参数 说明
-a 显示所有匹配的可执行的路径

实例

????查找passwd的路径

$ which passwd
/usr/bin/passwd

文件查找命令:whereis

????whereis用于查找命令的存放位置,该 命令只能用于查找二进制文件、源代码文件和man手册页

基本用法

whereis [参数] 文件名

参数说明

参数 说明
-b 只查找二进制文件
-f 不显示文件名前的路径名称
-m 只查找说明文件
-s 只查找原始代码文件

实例

# 查找 whereis 命令的存放位置
$ whereis whereis
whereis: /usr/bin/whereis /usr/share/man/man1/whereis.1.gz