rsync 이름에 연속된 숫자가 있는 파일 포함/제외

rsync 이름에 연속된 숫자가 있는 파일 포함/제외

src rsync서버에 다음과 같은 파일이 있습니다 .

p4.1

p4.2

p4.3 

등등 p4.67.

이제 그 중 일부를 다운로드해야 합니다. 전부는 아니지만 몇 가지 시작 항목부터 시작합니다. 즉, p4.42에서 다운로드 p4.67하고 첫 번째 항목을 다운로드하지 않으려고 합니다. 이것은 현재 dst파일 번호를 찾아서 생성하는 bash 스크립트를 통해 수행됩니다 rsync. 지금 내가 볼 수 있는 유일한 해결책은 를 사용하는 형편없는 솔루션이지만 --include-from=FILE이는 FILEbash 스크립트를 통해 생성하고 드라이브에서 삭제해야 함을 의미합니다. . 더 효율적이고 우아한 솔루션을 사용할 수 있는지 알고 싶습니다 rsync PATTERN.

답변1

seq(선택한 형식으로 범위 생성 -f) 및 (읽기)을 결합하여 --include-from=-가능한 솔루션 stdin:

$ ls src/
p.4.31  p.4.32  p.4.42  p.4.45  p.4.46  p.4.54
$ ls dst
$ seq -f "p.4."%g 42 46 | rsync src/* dst/ --include-from=- --exclude=* -v
p.4.42
p.4.45
p.4.46

sent 183 bytes  received 86 bytes  538.00 bytes/sec
total size is 0  speedup is 0.00
$ ls dst/
p.4.42  p.4.45  p.4.46

답변2

그것을 처리하는 또 다른 방법은 다음을 사용하는 것입니다.NUL로 구분됨 printf다음과 같이:

rsync -0 --include-from=<(printf 'p4.%d\0' {42..67}) .

관련 정보