我想递归地将一个目录复制到另一个目录上,但是我只想复制差异。原因是我在 Solaris 上的快照卷上执行此操作,即如果我将 100gig 复制到已经包含 100gig 但只有 5gig 不同的目录,我不希望整个 100gig 被复制因为这将用 200gig 的数据填充磁盘(快照保存的 100gig 新数据和 100g 旧数据)。
我希望最终结果只占用 105gig 的空间(即 5 gig 的新数据和 100 gig 的旧数据)。
删除快照不是一个选项,因为我们需要一个快速回滚选项。
最好只在块的基础上复制差异,但即使只有在它们不同时才复制整个文件也可以。
在-u
中cp
将不是在目的地的文件的工作可能有较新的时间戳。
另外,我应该注意到源目录和目标目录位于不同的卷上。
我怎样才能做到这一点?
Rsync 是您的工具:
rsync --archive source/ dest/
Run Code Online (Sandbox Code Playgroud)
存档只是一个复合选项,包括:
--recursive # recurse into directories
--links # copy symlinks as symlinks
--perms # preserve permissions
--times # preserve times
--group # preserve group
--owner # preserve owner
--devices # preserve device files
--specials # preserve special files
Run Code Online (Sandbox Code Playgroud)
如果你的系统上没有 rsync 你应该得到它。您可能可以使用其他工具创建其他解决方案,但是如果您正在寻找可以很好地完成这件事的程序(除非我误解了您的问题),那么您正在寻找的是 rsync。
归档时间: |
|
查看次数: |
1478 次 |
最近记录: |