
rsync
/a/b/ /c/d/ 에 해당하는 명령은 무엇입니까 mv
? 즉, 디렉토리 트리를 한 위치에서 다른 위치로, 가능한 다른 파일 시스템으로 이동하는 명령 은 무엇입니까 ?
즉, 복사만 하는 것이 아니라 원래 위치에서 파일을 삭제하는 것입니다. 제가 사용하고 싶은 이유 rsync
는 부분 이동을 재개하고 대역폭 사용량을 제한할 수 있기를 원하기 때문입니다.
답변1
이 명령은 /a/b의 모든 파일을 /c/d로 동기화하고 권한, 수정 날짜, 심볼릭 링크를 보존하고 디렉터리로 반복됩니다('-a' 또는 '--archive'는 모든 작업을 수행합니다. 이는 모든 항목에 대해 별도의 옵션인 '-rlptgoD'를 사용하는 것과 동일합니다. -v는 자세한 내용을 표시하며 '--remove-source-files'는 대상에서 완전히 생성된 소스 파일을 삭제합니다.
/c/ 내부의 d 디렉터리가 없으면 생성됩니다.
rsync -av --remove-source-files /a/b /c/d
원격 서버로 이동하려는 경우 원격 서버 경로와 동기화되고 '-z'는 전송 중에 파일 데이터를 압축합니다.
rsync -avz --remove-source-files /a/b user@hostname_or_ip:/c/d
디렉토리는 '--remove-source-files'로 제거되지 않으므로 rsync 후에 rm -rf /a/b를 실행하여 /a/b/ 내부의 모든 디렉토리를 제거해야 합니다.
한 줄 명령으로 다음과 같이 모두 넣을 수 있습니다
rsync -av --remove-source-files /a/b /c/d; if find /a/b/ -type f | read; then echo "Not all files were synced"; else rm -rf /a/b; fi
rsync를 실행한 다음 파일이 남아 있는지 확인하여 일부 파일이 완전히 동기화되지 않아 삭제되지 않은 경우 폴더 삭제를 방지한 다음 모든 파일이 동기화되지 않았다고 인쇄하거나 폴더가 있는 경우 폴더를 삭제합니다. 그 안에 파일이 없습니다.