-1
我想知道这个命令的每串背后的含义:说明
find . -type f -exec chmod 644 {} \;
find . -type f
意味着找到这个文件夹中的所有文件-exec chmod 644
执行chmod 644
命令所有这些文件
为什么我们需要{}
和\;
?他们有什么用途?
我想知道这个命令的每串背后的含义:说明
find . -type f -exec chmod 644 {} \;
find . -type f
意味着找到这个文件夹中的所有文件-exec chmod 644
执行chmod 644
命令所有这些文件为什么我们需要{}
和\;
?他们有什么用途?
.
...开始搜索在当前目录-type f
......找到类型为 “文件”(相对于 “目录”, “链接” 等)-exec ... \;
的文件.. 。每个文件发现,运行命令...
chmod
...为exec
命令将chmod
(对于文件更改访问权限)644
......访问权限会更改为(读取,写入)文件的所有者和(读取)给其他人。{}
......这部分将用实际文件名由find
为什么我们需要{}和\更换; ?他们的意思是什么?
{}
将替换为find
找到的文件名。
\;
终止-exec
动作find
。我们需要它,因为-exec
中的命令可以与您想要的一样长,然后在-exec
之后,您可能需要其他查找操作或谓词。所以你需要一些方法来确定一个-exec
部分结束并且其他一些查找动作如下。在实践中,这是由两个终结符中的一个决定的,它们的含义有所不同(请阅读查找的手册页),这两个终结符分别为;
或+
。但是因为;
是shell中的一个元字符,所以我们需要通过转义(或放入引号)来保护它免受shell攻击。
感谢您提供详细和翔实的解释! –
您是否至少有[请阅读文档?](http://pubs.opengroup.org/onlinepubs/9699919799/utilities/find.html) –