重做 rsync 以保留硬链接?

重做 rsync 以保留硬链接?

我正在将 Raspbian 分区从一张 SD 卡复制到新 SD 卡上的独立 Raspbian 安装。根据其他地方的建议,我跑了:

rsync -av --exclude=/mnt / /mnt

但现在我担心我没有保留硬链接,因为我没有包含 -H 指令,而是 rsync 制作了文件副本而不是保留硬链接。

我该如何纠正这个可能的错误?我可以运行某种形式的 rsync 来解决这个问题吗?例如:

rsync -avH --delete-after --exclude=/mnt / /mnt

答案1

你的想法是对的。

这是一个测试:

/foo$ stat -c '%i-%n' *
658846-egg
656129-spam
656129-test


/bar$ rsync -av /foo/ .
sending incremental file list
./
egg
spam
test
sent 229 bytes  received 76 bytes  610.00 bytes/sec
total size is 0  speedup is 0.00


/bar$ stat -c '%i-%n' *
657110-egg
663431-spam
663560-test


/bar$ rsync -Hav --delete-delay /foo/ .
sending incremental file list
test => spam

sent 107 bytes  received 19 bytes  252.00 bytes/sec
total size is 0  speedup is 0.00


/bar$ stat -c '%i-%n' *
657110-egg
663431-spam
663431-test

另一方面,最好使用--delete-after而不是其他类似的选项,即--delete-before--delete-delay--delete-during因为这些选项决定在传输之前或传输期间删除哪些文件。

相关内容