讲讲查找命令,whereis、locate、find 这几个命令,主要用于查找二进制文件,目录,以及全盘查找。
1. whereis
该命令只能用于查找二进制文件、源代码文件和man手册页,一般文件的定位需使用locate命令。
whereis bash
会输出下面:
bash:/bin/bash/etc/bash.bashrc/usr/share/man/man1/bash.1.gz
以上输出信息从左至右分别为查询的程序名、bash路径、bash的man 手册页路径
如果用户需要单独查询二进制文件或帮助文件,可使用如下命令:
whereis -b bash
whereis -m bash
whereis 不会全盘搜索,可以查看 whereis 搜索的目录:
whereis -l
2. locate
Linux locate命令用于查找合乎范本样式条件的文档或目录。
查找 passwd 文件,输入以下命令:
locate passwd
搜索 etc 目录下所有以 sh 开头的文件:
locate /etc/sh
忽略大小写搜索当前用户目录下所有以 r 开头的文件:
locate -i ~/r
locate 与 find 不同: find 是去硬盘找,locate 只在 /var/lib/slocate 资料库中找。
3. find
find 是全盘查找,所以比较吃硬盘,而且速度相较于上面两命令会慢许多。
全盘查找 v2ray 文件,下面命令会列出带 v2ray 字样的所有文件路径:
find / -name v2ay
全盘查找文件名包含有v2ray这个关键字的文件:
find / -name "*v2ray*"
将当前目录及其子目录下所有文件后缀为 .py 的文件列出来:
find . -name "*.py"
将当前目录及其子目录下所有最近 20 天内更新过的文件列出:
find . -ctime -20
查找 /var/log 目录中更改时间在 7 日以前的普通文件,并在删除之前询问它们:
find /var/log -type f -mtime +7 -ok rm {} \;
查找当前目录中文件属主具有读、写权限,并且文件所属组的用户和其他用户具有读权限的文件:
find . -type f -perm 644 -exec ls -l {} \;