开篇词
通过将 find
与其他命令相结合,我们可以做很多事情。我们可以在找到的文件上使用一些命令。
我们来准备一些用来演示的文件及目录:
echo "Some demo content" > find_usage01
echo "Some demo content" > find_usage02
echo "More demo content" > find_usage03
echo "Some demo content to be deleted" > find_to_be_deleted01
echo "Some demo content to be deleted" > find_to_be_deleted02
echo "More demo content to be deleted" > find_to_be_deleted03
mkdir find_dir01 find_dir02 find_dir03
ll | grep 'find*'
cat find_usage01 find_usage02 find_usage03
在一个或多个文件上运行命令
我们可以在匹配到的第一个或多个文件上应用命令。
打印每个匹配的文件的内容
我们可以使用 -execdir
选项结合 {}
符号来将命令应用至匹配到的文件:
find -name 'find_usage*' -execdir car '{}' ';'
打印所有匹配的文件的内容
我们可以将 {}
符号移至命令尾部并以 +
符号做结尾来同时将命令应用至所有匹配到的文件:
find -name 'find_usage*' -execdir cat {} +
删除匹配的文件
通过添加 -delete
选项,我们可以删除匹配到的文件:
find -name '*to_be_deleted*' -delete
ll | grep 'find*'
更改匹配的文件的权限
我们可以通过 find
命令的 -type
选项来将 chmod
命令应用至指定类型的文件:
更改匹配的普通文件的权限
给匹配到的文件开通用户组写权限:
ll | grep 'find*'
find -type f -name 'find*' -execdir chmod g+w {} +
ll | grep 'find*'
更改匹配的目录文件的权限
给匹配到的目录开通用户组写权限:
ll | grep 'find*'
find -type d -name 'find*' -execdir chmod g+w {} +
ll | grep 'find*'
我所撰写的英文版本
40. Find Utilities - Commands & Files Searching Usages
引用
参见
上一篇:
想看手册的其他内容?请访问该手册的所属专栏:《Linux 管理员手册:既简单又深刻》