최근에는 많은 수의 파일 (1 백만 이상)을 삭제해야했으며 그 일을 읽었습니다.
rsync -av --delete `mktemp -d`/ ~/source && rmdir ~/source
가장 최적화 된 방법 중 하나였으며보다 빠릅니다 rm -rf
.
나는 그 문제에 대한 전문가는 아니지만 rsync 성능의 이유는 파일을 나열하는 방식 (필자가 생각하는 FIFO 대신 LIFO)과 관련이 있습니다. 이제 문제는 효율적인 방법으로 많은 수의 파일을 이동해야한다는 것입니다. 조금 검색 한 후 이것을 찾았습니다.
rsync -av --ignore-existing --remove-source-files ~/source ~/destination
이 모든 이동 삭제하는 동안 파일 에서를 ~/source
, 디렉토리가 남아 있습니다. "라운드 로빈"과 같은 디렉토리 구조를 가지고 있기 때문에 수는 files/directories
1에 매우 가까우므로 디렉토리를 완전히 제거하려면 첫 번째 명령을 다시 실행해야합니다.
rsync -av --ignore-existing --remove-source-files ~/source ~/destination && \
rsync -av --delete `mktemp -d`/ ~/source && rmdir ~/source
직선 mv
은 거의 즉시 완료되지만 내 ~/destination
디렉토리에는 보관해야 할 파일이 있으므로 mv
옵션이 아닙니다. --prune-empty-dirs
및 --force
rsync 옵션을 찾았 지만 예상대로 작동하지 않는 것 같습니다.
--force force deletion of directories even if not empty
--prune-empty-dirs prune empty directory chains from the file-list
--remove-source-files sender removes synchronized files (non-dirs)
한 번에 rsync로 이동 을 모방하는 방법이 있습니까?