Linux查找文件 whereis locate which

Linux下查找文件可以使用whereis、locate、find这些命令,其中find命令最古老且功能最强,但是它比较耗时。whereis和locate命令搜索文件较快,同时功能也比较简单。

本文仅介绍whereis和locate的用法,find命令在后续的文章介绍。

whereis

事实上,whereis命令仅搜索特定类型的文件:二进制可执行文件、说明文档、源文件和其他特殊文件。

whereis命令的语法简单介绍如下:

whereis [-bm] name...

whereis name搜索文件名为name的特定类型的文件:

$ whereis ifconfig
ifconfig: /sbin/ifconfig /usr/share/man/man8/ifconfig.8.gz

上面的命令找到了名为ifconfig的特定类型的文件,其中第一个是二进制可执行文件,第二个是说明文档。

whereis -b name搜索文件名为name的二进制可执行文件:

$ whereis -b cat
cat: /bin/cat

上面的命令找到了名为cat的二进制可执行文件。

$ whereis -m cat
cat: /usr/share/man/man1/cat.1.gz

使用-m命令选项可以搜索说明文档类型的文件,上面的命令找到命令cat的说明文档。

locate

locate命令在一个数据库中通过文件名查找文件,所以其查找速度很快。

在Ubuntu 16.04中,使用下面的命令安装该软件:

$ sudo apt install mlocate

该命令的数据库不会实时更新,一般情况下是一天更新一次,当然也可以手动更新数据库:

$ sudo updatedb

locate命令的常用语法如下:

locate [-irc] name...

可以使用它直接搜索文件:

$ locate now.txt
/home/tom/now.txt
$ locate now.txt Now.txt
/home/tom/newSNow.txt
/home/tom/now.txt
/home/tom/homework/newNow.txt

这里执行了两次搜索,第一次搜索文件名中包含now.txt的文件,第二次搜索文件名包含now.txt和文件名包含Now.txt的文件。

使用-i命令参数忽略大小写:

~$ locate -i now.txt
/home/tom/newSNow.txt
/home/tom/now.txt
/home/tom/homework/newNow.txt

使用-c命令参数显示总数,而不是罗列文件:

$ locate -ic now.txt
3

使用-r命令参数使用正则表达式,下面的命令搜索所有文件名以w.txt结尾的文件:

$ locate -r "w.txt$"

which

which命令在Path环境变量中定义的路径下查找文件

which hadoop

你可能感兴趣的:(Linux查找文件 whereis locate which)