这是我想要的结果:
我希望在所有子目录和文件中实现这样的结果,将计算机桌面上的父目录 Work 的所有内容同步到外部硬盘上的旧版本目录 Work,以下命令是否合适rsync
?我刚刚开始使用rsync
!谢谢!
注意,我从根目录开始,您Macintosh HD
可以在其中看到Applications
、、、等等。外部硬盘驱动器已经有一个工作目录,我正在将其与桌面上的内容同步,因为外部硬盘上的目录要旧得多。Library
Network
System
Volumes
rsync -a Users/<myname>/Desktop/Work/ /Volumes/WD\ Passport/<myname>/Work/
答案1
如果我错了,请纠正我...我做了一些测试。我最初编写的命令在第 5 行中没有实现预期的结果。如果目标文件有较新的时间戳,这仍然会用同名的源文件替换它。相反,我需要一个--update
标志:
rsync -a --update Users/<myname>/Desktop/Work/ /Volumes/WD\ Passport/<myname>/Work/
我想我在某处读到过有些人使用的--ignore-existing
方法也是不正确的。如果文件在目标上已经按名称存在,那么基本上就不会将文件从源移动到目标。因此,拥有该标志将违反第 4 行的要求
不确定这是否是必需的,但我还需要在我的根目录中才能使其工作。
另外,如果相同的文件被排序在不同的子目录下,这可能会导致重复。例如,
目标已将 Tester/FileA 源移动到新子目录 Tester/NewDir/FileA
将会发生的事情是,Destination 将收到 NewDir/FileA 的副本,并且现在在 Destination 中,FileA 将存在于两个地方,即 NewDir/FileA(最近同步的版本)和 Tester/FileA。
这是比较标准的行为,我可以接受