..

find命令的使用

介绍

find,其作用如其寓意:实时递归搜索某个目录下的文件。

用例

find 的基本使用公式是:find <目录> <参数>。它的参数格式比较独(奇)特(怪),是那种单词参数。比如:-type 参数,要是别的命令估计会写成 -t, --type 这种格式。估计也是因为 find 命令是很早期实现的,风格还不够统一。

# 1. 下面这个命令,在 /etc 目录下,递归搜索名字匹配 '*.d' 的文件夹。
#    -type d 限制只搜索文件夹。
#    -name '*.d' 指定了按名字匹配
# 
#    注意:这个命令在 osx 13.6 下无法从 /etc 目录搜索到结果,很奇怪。
$ find /etc -type d -name '*.d'
/etc/rc4.d
/etc/update-motd.d
find: ‘/etc/multipath’: Permission denied
...省略
/etc/systemd/system/sshd-keygen@.service.d
/etc/ssh/ssh_config.d
/etc/ssh/sshd_config.d

# 2. 出于性能考虑,或者防止炸屏,一般需要限制最大递归深度,使用参数 -maxdepth
$ find /etc -name '*.conf' -maxdepth 2
/etc/resolv.conf
/etc/selinux/semanage.conf
...省略
/etc/PackageKit/PackageKit.conf
/etc/PackageKit/Vendor.conf

扩展

find 算是一个很古老的 Unix 命令,放在当下已经有点"过时"了。现在有已经更先进的 fzffd 等命令。