rsync 命令是增量复制还是覆盖文件?

Ary*_*yan 8 rsync

rsync 命令用于将文件夹数据同步到另一个文件夹。我想知道此命令是否覆盖整个文件并同步或仅复制新文件或更改的文件。是否提示是否在目标文件夹中找到类似名称的文件?

具体来说,我正在使用rsync -rvh /usr/local/aryan/ /usr/local/aryan并将所有文件从本地机器覆盖到远程机器。我手动将 10 个文件复制到远程位置,然后使用上述rsync命令同步 20 个文件,包括前 10 个文件。之后rsync -rvh command,我可以看到远程位置的所有文件都在同一时间。这意味着所有文件都被覆盖了。

roa*_*ima 7

rsync通常会在目标旁边创建一个新版本的文件,然后在最后一刻完成时将其切换到目标名称。新版本可以使用增量(即源和目标之间的更改)创建,也可以作为完整副本创建。(请参阅我对Smarter filetransfers than rsync 的回答对这种差异的一些说明。)

如果连接因任何原因中断,该--partial标志告诉rsync保留并使用任何部分传输的文件作为目标。(否则,部分传输的文件将被丢弃。)此标志的优点是在rsync中断和重试时不会浪费传输文件所花费的时间和带宽。此标志的缺点是中断前 90% 传输的文件最终可能会被中断前仅传输 10% 的同一文件替换。

--inplace标志告诉rsync直接就地构建目标文件。这通常在时间上效率较低,但可以避免同时在远程文件系统上拥有目标文件的两个完整副本。在一般情况下,不应使用此标志(实际上它与其他一些选项(例如--sparse)冲突)。


thr*_*rig 3

呃,这实际上取决于传递给 的标志rsync,但默认情况下rsync会将整个文件从源镜像到目标,尽管您可以在一定程度上使用--update--existing--ignore-existing或 以及各种排除复杂性(--exclude--delete--delete-excluded) 来自定义发生的情况选项(--prune-empty-dirs等)。

(谢天谢地!)没有提示(密码除外),并且不支持我所知道的“相似名称”(什么用例需要这样做?)。