我有一些文件夹被错误地复制了,我必须将它们合并在一起。假设文件夹 A 包含文件 X,文件夹 B 包含文件 Y,我想将文件 X 复制到文件夹 B。但是,当然,我可能会遇到更复杂的情况,即文件夹 A 和 B 都包含相同的文件 X:在这些情况下,我想保留文件的最新副本,因此 rsync 应该比较两个文件,如果源文件较旧,则跳过,否则目标文件是较旧的文件,并覆盖。
我应该在 rsync 命令行上输入哪些参数?
这是我在谷歌上找到的,但我不认为是正确的。
rsync -avz --ignore-existing src dest
手册页在某种程度上超出了我的理解范围。
PS 如果文件存在于两个文件夹中,则更好的做法是将较旧的文件覆盖到目标文件夹中,同时保留较旧的文件的副本,以备您需要恢复到上一个文件时使用
答案1
我会用:
rsync -abviuzP src/ dest/
-i
打开分项格式,显示比默认格式更多的信息-b
使两个文件夹中都存在的 rsync 备份文件附加~
到旧文件。您可以使用以下命令控制此后缀--suffix .suf
-u
使 rsync 传输跳过目标位置比源位置更新的文件-z
打开压缩功能,这在通过慢速链接传输易压缩文件时很有用-P
打开--partial
并--progress
--partial
如果传输中断,使 rsync 保留部分传输的文件--progress
显示每次传输的进度条,对于传输大文件非常有用