하드 링크를 보존하기 위해 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

관련 정보