rsync는 동기화 후 소스에서 일부 파일 확장자만 제거합니다.

rsync는 동기화 후 소스에서 일부 파일 확장자만 제거합니다.

jpeg내 로컬 컴퓨터에는 많은 파일( 및 ) 이 포함된 일부 디렉터리(하위 디렉터리 포함)가 있습니다 nef. 예를 들면 다음과 같습니다.

1.jpg
1.nef
2.jpg
2.nef
....

내가 하고 싶은 일은 HD의 모든 파일(및 jpeg) 을 동기화하는 것입니다 nef. 그러나 동기화 후에는 로컬 컴퓨터의 파일만 삭제 nef하고 보관합니다 jpg.

이것을 와 결합하는 방법이 있습니까 --remove-source-files?

답변1

안전을 위해 .nef. rsync예를 들어 다음과 같습니다.

rsync --verbose --archive --prune-empty-dirs \
    --include='*.nef' \
    --include='*.jpg' \
    --include='*/' \
    --exclude='*' \
    "$source/" "$target"

find "$source" -type f -name '*.nef' -delete

여기의 명령은 및 파일 rsync만 복사한 다음 (다른 파일은 건너뛰고 빈 디렉터리를 생성 하지 않음 ) 명령은 모든 파일을 삭제합니다 ..nef.jpg$target--prune-empty-dirsfind.nef

나는 절대로 --remove-source-files와 함께 사용하지 않는 경향이 있습니다 rsync.

답변2

소스 삭제를 제외하는 옵션이 없으므로 두 번 동기화해야 할 수도 있습니다.

다음과 같이 시도해보세요.

rsync -av --remove-source-files --exclude='*.jpg' Source/ Destination ; rsync -av Source/*.jpg Destination 

관련 정보