递归 chmod 到 644,其中当前权限等于 755

递归 chmod 到 644,其中当前权限等于 755

我将一个项目目录复制到便携式硬盘,擦除笔记本电脑并将项目复制回来,但现在 git 报告由于文件先前的 644 权限更改为 755 而导致大量更改。

我可以递归地将所有文件和目录更改为 644,但随后我在 git 中加载了更多更改(所以看起来并非所有内容都是 644)。有没有办法只 chmod 具有 755 权限的文件?

答案1

find(参见)的文档man find写道,

-perm mode文件的权限位恰好是模式(八进制或符号)。 [...] 有关一些说明性示例,请参阅示例部分。

所以你可以像这样匹配文件并更改它们的权限

find path/to/files -type f -perm 0755 -exec echo chmod 0644 {} +

echo当您觉得它显示了您所期望的内容时,请删除它,然后再次运行它。

答案2

如果它是 git 存储库的工作树,只需检查文件就可以修复它们的权限。即,做一个git checkout -f.

相关内容