40. 查找工具 - 命令行 & 文件搜索用途

开篇词

通过将 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 '{}' ';'

在每个文件上单独运行 cat 命令

打印所有匹配的文件的内容

我们可以将 {} 符号移至命令尾部并以 + 符号做结尾来同时将命令应用至所有匹配到的文件:

find -name 'find_usage*' -execdir cat {} +

同时在所有文件上运行 cat 命令
 

删除匹配的文件

通过添加 -delete 选项,我们可以删除匹配到的文件:

find -name '*to_be_deleted*' -delete
ll | grep 'find*'

在删除匹配的文件后输出名称以 find 开头的文件
 

更改匹配的文件的权限

我们可以通过 find 命令的 -type 选项来将 chmod 命令应用至指定类型的文件:

更改匹配的普通文件的权限

给匹配到的文件开通用户组写权限:

ll | grep 'find*'
find -type f -name 'find*' -execdir chmod g+w {} +
ll | grep 'find*'

在变更匹配文件的组权限的前后输出文件名以 find 开头的所有文件

更改匹配的目录文件的权限

给匹配到的目录开通用户组写权限:

ll | grep 'find*'
find -type d -name 'find*' -execdir chmod g+w {} +
ll | grep 'find*'

在变更匹配文件的组权限的前后输出文件名以 find 开头的所有文件
 

我所撰写的英文版本

40. Find Utilities - Commands & Files Searching Usages
 

引用

参见

上一篇:

想看手册的其他内容?请访问该手册的所属专栏:《Linux 管理员手册:既简单又深刻

发布了132 篇原创文章 · 获赞 6 · 访问量 7939

猜你喜欢

转载自blog.csdn.net/stevenchen1989/article/details/104218684