Linux:同步两个目录权限、用户和组并保持文件内容不变

Mas*_*mog 8 linux filesystems rsync

在我的 Linux 机器中,我有两个目录:

  • 具有错误权限的工作文件
  • 具有正确权限(权限和用户和组)的相同文件的旧版本

我只需要同步权限而不更改文件内容。我尝试了 rsync,但找不到合适的选项。你能给我一些建议吗?

提前致谢。

编辑

感谢您的建议,我有了这个脚本。它递归地更改子树权限:

#!/bin/bash
cd good
find $1/* | while read DIR
do
 chown --reference="$DIR" "/bad/$DIR"
 chmod --reference="$DIR" "/bad/$DIR"
done
Run Code Online (Sandbox Code Playgroud)

不是杰作,但对我有用。

use*_*517 7

您可以使用--reference=file切换到chmodchown来执行此操作,例如

#!/bin/bash
for FILE  in /path/to/good/directory/*
do
    chown --reference="$FILE" /path/to/bad/directory/"$(basename "$FILE")"
    chmod --reference="$FILE" /path/to/bad/directory/"$(basename "$FILE")"
done
Run Code Online (Sandbox Code Playgroud)