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