이 두 변수에 의해 유지되는 bash 스크립트에 두 개의 디렉토리가 있습니다
$SRC
$DEST
어떻게 해야 할까요?rsync
- $SRC/에서 $DEST/로 파일 복사,
- $DEST/* 파일이 $SRC/ 파일과 일치하는지 확인(가장 일치하는 항목이 있지만 느림)
- $SRC/ 파일을 삭제하시겠습니까?
내가 Google에 제공하는 모든 것은 rsync를 수행한 다음 DEST 파일을 삭제하는 예를 제공합니다.
rsync
나는 이것을 이해하지 못합니다. 왜 대상 디렉토리에 대해 수행한 다음 삭제합니까 ?
구글 검색을 해보고 무슨 뜻인지 알아보세요.
답변1
따라서 파일 이동 옵션은 입니다 --remove-source-files
. 여기는매뉴얼 페이지, 여기에서 몇 가지 토론을 참조하세요.
https://unix.stackexchange.com/questions/43957/using-rsync-to-move-not-copy-files-between-directories
rsync는 항상 체크섬을 사용하여 파일을 확인하지만 그것이 문제에 충분한지 여부는 사용자에게 달려 있습니다. 대상의 체크섬은 디스크에 쓴 후가 아닌 전송 시 계산되므로 결과 파일을 기반으로 계산되지 않으며 기록할 때 OS에서 오류가 발생하지 않는 한 오류가 발생하지 않습니다. 이에 대한 일부 논의는 다음과 같습니다. https://unix.stackexchange.com/questions/30970/does-rsync-verify-files-copied-between-two-local-drives
이것이 요구 사항에 충분하지 않은 경우 소스를 삭제하지 않고 파일을 rsync하는 스크립트를 작성하고 rsync를 다시 실행하여 -c
체크섬과 일치하지 않는 파일을 선택/복사한 다음 마지막으로 소스 파일을 삭제하는 rm
것을 고려하십시오.
답변2
rsync
이는 의 --remove-source-files
옵션을 간단하게 사용하는 것이어야 합니다.
rsync --dry-run --stats -av --remove-source-files "$SRC/" "$DEST/"
만족스러우면 제거 --dry-run
(및 아마도 --stats
)하면 명령이 수행해야 한다고 생각하는 작업이 수행될 것입니다.