찾아서 재동기화하시겠습니까?

찾아서 재동기화하시겠습니까?

14일보다 오래된 10,000개 이상의 파일을 검색한 다음 찾은 파일을 대상으로 rsync할 수 있기를 원합니다.

이 두 명령을 결합하는 방법이 있습니까?

find ./ -mtime +14 -size +10k 
rsync --remove-sent-files -avz /src /dest

답변1

아래 나열된 옵션 중 하나를 사용하여 find 출력을 rsync로 보낼 수 있습니다.

방법 1

이 두 옵션은 매우 유사합니다. 둘 다 디렉터리를 특정 위치로 변경한 다음 해당 find위치에서 명령을 실행한다고 가정합니다.

$ rsync -avz --remove-sent-files \
        --files-from=<(find ./ -mtime +14 -size +10k) ./ /dest

다음에서 목록을 파이프할 수도 있습니다.

$ find ./ -mtime +14 -size +10k -print0 \
        | rsync -av --files-from=- --from0 ./ /dest

방법 #2

이 방법은 어디에서나 실행할 수 있습니다.

$ find /src/dir/ -mtime +14 -size +10k -printf %P\\0 \
        | rsync -av --files-from=- --from0 /src/dir/ /dst/dir/
  • printf %P: 파일이 발견된 명령줄 인수의 이름과 파일 이름이 제거되었습니다. 이렇게 하면 먼저 src 디렉토리에 CD를 넣지 않고도 src 디렉토리를 사용할 수 있습니다.

인용하다

관련 정보