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}) .