rsync - 파일이 없는 경우에만 디렉터리 내용 복사

rsync - 파일이 없는 경우에만 디렉터리 내용 복사

이전 서버의 콘텐츠를 새 서버로 마이그레이션하고 싶지만 모든 것을 복사하고 싶지 않고.swf파일이 그 안에 있습니다. 우리는 플래그에 대해 알고 있지만 --exclude상위 디렉토리(및 해당 내용)가 아닌 파일만 제외합니다..swf문서

rsync를 사용하여 이 작업을 수행할 수 없는 경우 이 경우 bash 스크립트를 사용하여 한 서버에서 다른 서버로 파일을 복사할 수 있습니까?

답변1

*.swf 파일이 포함된 디렉터리 목록을 생성한 다음 해당 목록을 rsync용 제외 파일로 변환할 수 있습니다.

예를 들어

find /path/to/topdir/ -iname '*.swf' -printf "%h\n" |
    sort -u |
    sed -e 's/^/- /; s:$:/**:' > rsync-exclude.txt

출력은 다음과 같으며 --exclude-from=FILErsync 옵션과 함께 사용할 수 있습니다.

- /path/to/topdir/directory1/**
- /path/to/topdir/directory2/**
- /path/to/topdir/directory3/**
- /path/to/topdir/directory5/subdir1/**

rsync의 포함 및 제외 옵션은 익히기가 어려울 수 있으며 glob 또는 정규식과 다르게 작동합니다. 패턴이 정확히 맞을 때까지 --dry-run연습 해야 합니다 .--verbose

관련 정보