将文件夹复制到远程计算机的最佳方法是什么(在我的情况下,我们需要将所有内容复制/etc/yum.repo.d
到远程计算机)?使用rsync -av
或scp -rp
?
# scp -rp /etc/yum.repos.d/* master100:/etc/yum.repos.d
# rsync -av /etc/yum.repos.d/* master100:/etc/yum.repos.d
答案1
我更愿意使用rsync
.它更容易记住,因为正如您所示,最常见的选项与cp
.
从技术上讲,rsync
可能无法安装在某些scp
可用的系统上。然而,它的功能rsync
非常有用。结果,它将通常已安装,并且练习使用它很有用。
对于像您展示的情况,您有时可能想要使用rsync --delete
.即使对于本地文件,这也很有用(cp
没有--delete
选项)。然而它也是超级危险的。当你写一个rsync --delete
命令时,你应该总是首先在-n
模式下运行它,看看它会做什么而不实际执行它。
(这是特别危险的,因为 rsync 将/
源上的尾随解释为与其他人不同的含义(更类似于 Trailing /.
),并且如果路径是目录,则使用 TAB 键完成路径将自动包含尾随/
。这甚至可能会导致问题没有--delete
,通过覆盖错误的文件或用没有意义的文件混乱错误的目录,我认为 rsync 的行为早于路径完成的广泛使用。)