rsync /데이터/*/이미지/모드

rsync /데이터/*/이미지/모드

내 폴더 구조는 다음과 같습니다.

- data
-- user 1
--- images
--- other stuff
-- user 2
--- images
--- other stuff
-- user 3
...

rsync모든 폴더를 원합니다 images. 포함/제외 규칙을 사용하면 id사용자를 미리 알 수 없기 때문에 문제가 발생합니다 . 실제 응용에서는 난수입니다.

나는 이와 같은 것이 필요합니다 data/**/images/. 이는 데이터 폴더 아래에 모든 이미지 폴더를 가져오는 것을 의미합니다.

ls파이프나 이와 유사한 치트 없이 이것이 가능합니까 rsync?

답변1

모든 폴더를 복사하려면 images간단한 셸 와일드카드로 충분합니다. 그러나 목적지의 경로를 보존하려는 것 같으므로 -R이를 위해서는 플래그가 필요합니다.

cd /path/to/data
rsync -iavR */images remote:/path/to/destination/

*/images여기에는 대상 디렉터리 아래 대상의 소스 경로 부분이 포함됩니다 . 따라서 소스 코드가 있으면 /path/to/data/12345/images/picnic.jpg결국 다음 위치에 복사됩니다./path/to/destination/12345/images/picnic.jpg

대화형으로 실행 중이고 진행 상황을 확인하려면 --progress또는를 추가하세요.--dry-run

관련 정보