11 我有一个包含大量文件的目录。部分文件具有755权限,另一部分具有644权限。我想将具有755权限的文件转换为644。我已经尝试通过从目录本身运行以下代码行: find . -perm 755 -exec chmod 644 {}\; 但是,结果是,该权限仅更改了目录本身,将其更改回原来的位置后,我发现文件权限保持不变。我想念什么吗? shell permissions find — 尤金·S source 您的命令从目录中删除了可执行位,使得无法chdir到它并查看其中包含的文件。这就是该命令似乎不起作用的原因。试试吧find ./ -type f -exec chmod -x {} \;。 — 沙杜尔2012年
17 好的,看来我已经找到问题了。似乎在和之间必须有一个强制性空格,因此命令如下所示:{}\; find . -perm 755 -exec chmod 644 {} \; 而不是: find . -perm 755 -exec chmod 644 {}\; 另外,更改目录权限的问题也可以通过添加-type f标志来解决,因此它看起来如下所示: find . -type f -perm 755 -exec chmod 644 {} \; — 尤金·S source 6 您可以使用+而不是\;来减少创建的子流程的数量。 — 凯文(Kevin) -type d将找到目录。-type f会找到文件。 — 米克T
find ./ -type f -exec chmod -x {} \;
。