如何使用 rsync 复制所有权和权限但不复制文件?

如何使用 rsync 复制所有权和权限但不复制文件?

我正在使用 AWS CodeDeploy 将文件从 git 复制到服务器。它无法覆盖文件,因此我必须将文件移动到另一个临时位置,然后它将文件从存储库移动到原始服务器/var/www

我想保持目录和文件的权限与以前相同,因此我可以使用rsync临时文件夹中的旧文件将权限和所有权同步到这个新文件夹,但不同步文件本身吗?

答案1

据我所知,没有 rsync 标志仅用于同步所有权和权限,但chmodchown命令都支持--reference标志。

您可以指向现有文件并chmod使用该文件的权限,而无需在更改文件模式时提供 MODE 值。
同样,chown将使用该参考文件/目录的所有者和组,而不是指定 OWNER:GROUP 值。

然后你可以做类似的事情:

cd /template/
find . -exec chmod -v --reference='{}' /path/to/target/'{}' \;
find . -exec chown -v --reference='{}' /path/to/target/'{}' \;

相关内容