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$"
网友评论