我正在使用 AWS CodeDeploy 将文件从 git 复制到服务器。它无法覆盖文件,因此我必须将文件移动到另一个临时位置,然后它将文件从存储库移动到原始服务器/var/www
。
我想保持目录和文件的权限与以前相同,因此我可以使用rsync
临时文件夹中的旧文件将权限和所有权同步到这个新文件夹,但不同步文件本身吗?
答案1
据我所知,没有 rsync 标志仅用于同步所有权和权限,但chmod
和chown
命令都支持--reference
标志。
您可以指向现有文件并chmod
使用该文件的权限,而无需在更改文件模式时提供 MODE 值。
同样,chown
将使用该参考文件/目录的所有者和组,而不是指定 OWNER:GROUP 值。
然后你可以做类似的事情:
cd /template/
find . -exec chmod -v --reference='{}' /path/to/target/'{}' \;
find . -exec chown -v --reference='{}' /path/to/target/'{}' \;