我有同一个目录树的两个副本。它们在两者中几乎都有相同的文件(一个版本可能有几个额外或丢失的文件)。但是,大多数文件对于两个目录都是通用的(具有相同的相对路径和所有内容)。
假设这些在目录中:
version1/
version2/
问题是 version1/中的权限搞砸了,我想复制 version2/中的权限,但不要替换 version1/中较新的文件。
是否有通过 bash 自动执行此操作的方法? (不一定是 bash,也可以是其他方法/编程语言)。
最佳答案
您应该查看 chmod
的 --reference
选项:
chmod --reference version2/somefile version1/somefile
以合适的方式应用 find
和 xargs
你应该没问题,即类似
~/version2$ find . -type f | xargs -I {} chmod --reference {} ../version1/{}
这甚至可以递归地工作,并且对于目标目录中丢失的文件很健壮(除了 No such file ... 错误,可以忽略)。当然它不会对只存在于目标目录中的文件做任何事情。
干杯,
关于linux - 复制文件权限,但不复制文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15245144/