linux - 复制文件权限,但不复制文件

标签 linux bash permissions copy chmod

我有同一个目录树的两个副本。它们在两者中几乎都有相同的文件(一个版本可能有几个额外或丢失的文件)。但是,大多数文件对于两个目录都是通用的(具有相同的相对路径和所有内容)。

假设这些在目录中:

version1/
version2/

问题是 version1/中的权限搞砸了,我想复制 version2/中的权限,但不要替换 version1/中较新的文件。

是否有通过 bash 自动执行此操作的方法? (不一定是 bash,也可以是其他方法/编程语言)。

最佳答案

您应该查看 chmod--reference 选项:

chmod --reference version2/somefile version1/somefile

以合适的方式应用 findxargs 你应该没问题,即类似

 ~/version2$ find . -type f | xargs -I {} chmod --reference {} ../version1/{}

这甚至可以递归地工作,并且对于目标目录中丢失的文件很健壮(除了 No such file ... 错误,可以忽略)。当然它不会对只存在于目标目录中的文件做任何事情。

干杯,

关于linux - 复制文件权限,但不复制文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15245144/

相关文章:

linux - 如何为 openvt 重定向 stderr

linux - 存储在变量或管道到另一个命令时如何保留 grep 颜色?

linux - 符号链接(symbolic link)覆盖了 linux 中的环境变量

bash - BASH函数中for循环中的数组

bash - Windows 10 'cannot import name ' getuid' 从 'os'

android - 在 android 上处理 SMS 权限以自动验证 OTP

在c中捕获ping的输出

linux - 从两个文本文件(平行语料库)中一致地随机采样 N 行

winapi - 在 Windows Server 2019 上从作为 IIS APPPOOL 帐户运行的进程调用 OpenProcess 的访问被拒绝

php - 即使从具有 Yii2 行为的 matchCallback 返回 false 时也设置自定义 denyCallback