ハードリンクを保存するためにrsyncを再実行しますか?

ハードリンクを保存するためにrsyncを再実行しますか?

あるSDカードのRaspbianパーティションを新しい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

おすすめ記事