단일 파일의 rsync가 작동하는 것처럼 보이지만 실제로는 아무것도 수행하지 않습니까?

단일 파일의 rsync가 작동하는 것처럼 보이지만 실제로는 아무것도 수행하지 않습니까?

파일 시스템이 꽉 차서 5GB cp 작업이 실패합니다. 파일 시스템 크기를 조정한 후 rsync를 사용하여 단일 파일 복사본을 복원하려고 했습니다.

$ rsync --progress /source/bigfile ./bigfile

그런데 이상하게도 파일이 이미 거기에 있다는 것을 깨닫지 못하고 처음부터 시작하는 것 같습니다. 하지만 파일을 어디에 저장하는지 알려주지 않습니다.

큰 파일을 다른 곳으로 옮기고 rsync를 다시 시작하면 파일이 표시되지 않습니다!

$ mv bigfile bigfile-away
$ rsync --progress /source/bigfile ./

rsync가 다시 복사되는 것 같지만 파일이 나타나는 것을 볼 수 없습니다.

이건 이상해요!

답변1

동일한 시스템의 두 부분 간에 복사하고 있습니다(또는 적어도 그렇게 보입니다 rsync). 이렇게 하면 대부분의 최적화 기능이 비활성화 rsync되고 다시 cp.

당신이 할 수 있다면보장하다파일에는 변경 사항이 없으며 그대로 사용해도 됩니다 --append. 중단 가능한 복사본의 경우 원할 수 있습니다.--partial

--times( )를 사용하여 파일 타임스탬프를 보존할 수 있는데 -t, 이는 사용하려는 것처럼 들립니다 --inplace(플래그는 이것을 의미합니다 --append).

rsync -tvP --append /source/bigfile ./bigfile

파일을 복사하면 rsync일반적으로 임시 파일 이름에 기록된 다음 즉시 올바른 파일 이름으로 이동됩니다. 파일명이 점으로 시작하므로 다음과 같이 분류됩니다.숨겨진;로 보실 수 있습니다 ls -A. 또한 --partial(partial ) 플래그가 없으면 -P불완전한 파일이 대상에서 제거됩니다.

관련 정보