NAS에서 외장 하드 드라이브로 새 파일을 복사하고 싶습니다. 지금까지는 새 파일을 수동으로 복사했습니다. 이제 스크립트를 사용하여 이를 자동화하고 싶습니다. 그러나 지금까지 rsync를 사용하여 시도한 모든 것은 새 파일뿐만 아니라 모든 파일을 복사하는 것 같습니다. 다음 명령을 사용해 보았습니다.
rsync -ar \
--ignore-existing \
--size-only \
--progress --info=progress2 \
--dry-run \
"/Volumes/NAS" "/Volumes/G-DRIVE mobile SSD R-Series"
또한 크기뿐만 아니라 체크섬 등도 사용해 보았습니다. 누군가 나에게 이러한 행동이나 내 작업을 수행하기 위해 무엇을 해야 하는지 설명해 줄 수 있습니까? 통계를 인쇄할 때 항상 모든 파일을 전송할 것이라고 표시됩니다. 또한 -i 매개변수를 사용하면 각 파일에 대해 다음 정보를 얻을 수 있습니다. >f++++++++++
답변1
올바른 명령은 아마도 다음과 같을 것입니다:
rsync --archive --progress --info=progress2 \
'/Volumes/NAS/' '/Volumes/G-DRIVE mobile SSD R-Series'
-a
( --archive
) 플래그는 ( -t
) --times
와 -r
( --recursive
)를 의미하므로 명시적으로 지정할 필요가 없습니다. ()를 사용하는 것은 크기와 타임스탬프를 얻을 수 있는 경우 --size-only
좋지 않은 선택이지만 제한된 파일 시스템(예: FAT)에 복사하는 경우 2초 시간 단위를 극복하기 위한 시간 창이 필요할 수 있습니다. 대상에서 어떤 종류의 복사본을 얻은 후 소스 파일에 대한 변경 사항을 무시하려는 경우가 아니면 사용하면 안 됩니다.-a
--archive
--modify-window=2
--ignore-existing
테스트할 때는 반드시 --dry-run
( -n
)를 사용하고, rsync
작업을 적용할 준비가 되면 제거하는 것을 잊지 마세요.
마지막으로 소스 디렉터리에는 일반적으로 뒤에 슬래시가 있어야 합니다. 문서에는 다음과 같이 설명되어 있습니다.
소스의 후행 슬래시는 대상에 추가 디렉터리 수준이 생성되지 않도록 이 동작을 변경합니다.
/
소스 후행은 "이 디렉터리의 내용을 복사하세요."상대적으로"이름으로 디렉토리 복사".