programing tip

Rsync include 및 exclude 옵션을 사용하여 패턴별로 디렉터리 및 파일 포함

itbloger 2020. 12. 11. 07:54
반응형

Rsync include 및 exclude 옵션을 사용하여 패턴별로 디렉터리 및 파일 포함


내 rsync 구문을 올바르게 가져 오는 데 문제가 있으며 내 시나리오를 실제로 rsync로 처리 할 수 ​​있는지 궁금합니다. 첫째, 내 로컬 호스트와 원격 호스트간에 rsync가 제대로 작동하는지 확인했습니다. 디렉토리에서 직접 동기화를 수행하면 성공합니다.

내 파일 시스템은 다음과 같습니다.

uploads/
  1260000000/
    file_11_00.jpg
    file_11_01.jpg
    file_12_00.jpg
  1270000000/
    file_11_00.jpg
    file_11_01.jpg
    file_12_00.jpg
  1280000000/
    file_11_00.jpg
    file_11_01.jpg
    file_12_00.jpg

내가 원하는 것은 서브 디렉토리에서 "file_11_"로 시작하는 파일에서만 rsync를 실행하고 서브 디렉토리에서 이러한 모든 파일을 동기화하기 위해 하나의 rsync 작업 만 실행할 수 있기를 원합니다.

내가 시도하는 명령은 다음과 같습니다.

rsync -nrv --include="**/file_11*.jpg" --exclude="*" /Storage/uploads/ /website/uploads/

이로 인해 드라 이런에서 0 개의 파일이 전송되도록 표시됩니다. --include 및 --exclude 문의 다양한 다른 조합을 시도했지만 계속 결과가 없거나 include 또는 exclude 옵션이 설정되지 않은 것처럼 모든 것을 얻었습니다.

누구든지 이것을하는 방법을 알고 있습니까?


문제는 --exclude="*"(예를 들어) 1260000000/디렉토리 를 제외하라는 것이므로 rsync해당 디렉토리의 내용을 검사하지 않으므로 디렉토리에 --include.

나는 당신이 원하는 것에 가장 가까운 것은 이것이라고 생각합니다.

rsync -nrv --include="*/" --include="file_11*.jpg" --exclude="*" /Storage/uploads/ /website/uploads/

(모든 디렉토리 및 모든 파일 매칭이 포함되는 file_11*.jpg, 또는,하지만 다른 파일) 어쩌면 이 :

rsync -nrv --include="/[0-9][0-9][0-9]0000000/" --include="file_11*.jpg" --exclude="*" /Storage/uploads/ /website/uploads/

(동일한 개념이지만 포함 할 디렉토리에 대해 훨씬 더 까다 로움).


rsync 제외 패턴 예제 포함 :

"*"         means everything
"dir1"      transfers empty directory [dir1]
"dir*"      transfers empty directories like: "dir1", "dir2", "dir3", etc...
"file*"     transfers files whose names start with [file]
"dir**"     transfers every path that starts with [dir] like "dir1/file.txt", "dir2/bar/ffaa.html", etc...
"dir***"    same as above
"dir1/*"    does nothing
"dir1/**"   does nothing
"dir1/***"  transfers [dir1] directory and all its contents like "dir1/file.txt", "dir1/fooo.sh", "dir1/fold/baar.py", etc...

마지막으로 경로를 평가할 때 처음에 사용되는 별표에 의존하지 마십시오. 같은 "**dir"두 개 이상의 별표 (*)는 파일 이름에 대한 작업을 해달라고 및 노트 (그 확인은 하나의 폴더 나 파일이 아닌 경로에 대한 그들을 사용).


위의 권장 답변에 -m을 추가하여 빈 디렉토리를 정리하십시오.

참고 URL : https://stackoverflow.com/questions/9952000/using-rsync-include-and-exclude-options-to-include-directory-and-file-by-pattern

반응형