Shell命令-搜索文件或目录之whereis、locate

文件及内容处理 - whereis、locate

1. whereis:查找二进制命令,按环境变量PATH路径查找

whereis命令的功能说明

whereis 命令用于查找文件。该指令会在特定目录中查找符合条件的文件。这些文件应属于原始代码、二进制文件,或是帮助文件。该指令只能用于查找二进制文件、源代码文件和 man 手册页,一般文件的定位需使用 locate 命令。

whereis命令的语法格式

whereis [options] [-BMS directory... -f] name...
whereis [-bfmsu][-B <目录>...][-M <目录>...][-S <目录>...][文件...]

whereis命令的常用参数说明:

whereis 参数不多,表1为 whereis 命令的参数及说明:

表1: whereis 命令的参数及说明

参数选项 解释说明
-b  只查找二进制文件。
-B<目录>  只在设置的目录下查找二进制文件。
-f  不显示文件名前的路径名称。
-m  只查找说明文件。
-M<目录>  只在设置的目录下查找说明文件。
-s  只查找原始代码文件。
-S<目录>  只在设置的目录下查找原始代码文件。
-u  查找不包含指定类型的文件。

whereis命令的实践操作

范例1: 使用指令whereis 查看指令 cp 的位置,输入如下命令

[root@m01 ~]# whereis cp
cp: /usr/bin/cp /usr/share/man/man1/cp.1.gz

注意:以上输出信息从左至右分别为查询的程序名、cp 路径、cpman 手册页路径

范例2: 单独查询二进制文件或帮助文件,可使用如下命令

[root@m01 ~]# whereis -b cp
cp: /usr/bin/cp
[root@m01 ~]# whereis -m cp
cp: /usr/share/man/man1/cp.1.gz

2. locate:标注从数据库 (/var/lib/mlocate/mlocate.db) 查找命令,使用updatedb更新库

locate命令的功能说明

locate 命令用于查找符合条件的文档,他会去保存文档和目录名称的数据库内,查找合乎范本样式条件的文档或目录。一般情况我们只需要输入 locate your_file_name 即可查找指定文件。CentOS 7已经没有此命令,需手动安装,方法为:

yum install -y mlocate

locate命令的语法格式

locate [--version]
locate [-d ][--help][--version][范本样式...]

locate命令的常用参数说明:

locate 参数不多,表1为 locate 命令的参数及说明:

表1: locate 命令的参数及说明

参数选项 解释说明
-d或--database= 配置locate指令使用的数据库。locate指令预设的数据库位于/var/lib/slocate目录里,文档名为slocate.db,您可使用 这个参数另行指定。
--help 在线帮助。
--version 显示版本信息。

locate命令的实践操作

范例1: 查找 passwd 文件,输入以下命令

locate passwd

附加说明
locatefind 不同: find 是去硬盘找,locate 只在 /var/lib/slocate 资料库中找。
locate 的速度比 find 快,它并不是真的查找,而是查数据库,一般文件数据库在 /var/lib/slocate/slocate.db中,所以 locate 的查找并不是实时的,而是以数据库的更新为准,一般是系统自己维护,也可以手工升级数据库 ,命令为

locate -u 

今天就写到这里,有什么疑问或出现什么错误,随时欢迎大神们发表评论指点迷津

上一篇:Linux常用命令——文件搜索命令


下一篇:我应该如何在Java中使用getResource()?