Rsync
rsync 包含/排除名稱中具有連續數字的文件
我在
src
rsync
伺服器中有這樣的文件:p4.1 p4.2 p4.3
依此類推
p4.67
。現在我需要下載其中的一些。不是全部,而是從一些開始的,即我希望從
p4.42
to下載p4.67
並避免下載第一個。這將由 bash 腳本完成,該腳本會發現目前dst
文件編號並為rsync
. 我現在看到的唯一解決方案是使用 of 的蹩腳解決方案,--include-from=FILE
但這意味著我需要FILE
通過 bash 腳本生成並將其從驅動器中刪除。想知道是否有更有效和優雅的解決方案使用rsync PATTERN
.
組合
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
處理它的另一種方法是使用NUL 分隔
printf
,如下所示:
rsync -0 --include-from=<(printf 'p4.%d\0' {42..67}) .