locate 是一个查找文件的工具,但该命令不像 whereis 只能查找程序、二进制等几种文件,也没有 find 那么复杂。
locate [参数] [字符串或模式...]
-c 或 --count 只显示匹配的个数
-d<数据库文件> 或 --database=<数据库文件> 设置 locate 命令使用的数据库。locate 命令默认搜索的数据库是 /var/lib/mlocate/,文件名为 mlocate.db;如果不指定数据库,则仍旧使用系统默认的数据库;如果制定的数据库名为“-”,则表示从标准输入接收的数据库。
-n<num> 或 -l<num> 或 --limit<num> 至多显示 num 个输出
-i 或 --ignore-case 在匹配模式的时候,忽略大小写
-q 安静模式,不输出任何错误信息
-S 或 --statistics 输出每个数据的统计信息
-u 建立数据库,从根目录开始
-U 建立数据库,则可以制定开始的位置
-o 或 --null 输出结果用 ASCII null 间隔条目,而不是每个条目占一行
(1)使用 locate 命令查找文件路径或名称包含 nginx 字符串的文件名,如下:
[hxstrive@localhost ~]$ locate nginx /usr/lib/python3.9/site-packages/sos/report/plugins/nginx.py /usr/lib/python3.9/site-packages/sos/report/plugins/__pycache__/nginx.cpython-39.opt-1.pyc /usr/lib/python3.9/site-packages/sos/report/plugins/__pycache__/nginx.cpython-39.pyc
(2)利用 locate 命令查找 hosts 配置文件,如下:
[hxstrive@localhost ~]$ locate hosts | grep etc /etc/hosts /etc/avahi/hosts /etc/chromium/native-messaging-hosts /etc/chromium/native-messaging-hosts/org.gnome.chrome_gnome_shell.json /etc/opt/chrome/native-messaging-hosts /etc/opt/chrome/native-messaging-hosts/org.gnome.chrome_gnome_shell.json /etc/samba/lmhosts
上面的 grep etc 命令结合管道命令对 locate hosts 的结果进行过滤,linux 中配置文件大部分均位于 etc 目录,因此使用 grep etc 进行过滤。
更多关于命令详细参考手册,请使用 man 命令或者 --help 参数获取帮助信息