我试图仅复制与模式匹配的文件, player00_0[1..5]*.*
该模式[1..5]
表示文件名中该位置带有 1、2、3、4 或 5 的文件。源目录中有 40K 个文件,因此我们不能使用任何 bashglobs
来完成这项工作。
这是我的尝试:
indir=playout40kem
outdir=visible5k
rsync -am --include='player00_01*.*' --include='player00_02*.*'
--include='player00_03*.*' --include='player00_04*.*'
--include='player00_05*.*' $indir/ $outdir
然而结果是全部文件被复制。进行此过滤的正确方法是什么?
答案1
从https://unix.stackexchange.com/a/582184/66602缺失的部分是:
--exclude="*"
。它必须跟随条目include=
:
rsync -am --include='player00_01*.*' --include='player00_02*.*'
--include='player00_03*.*' --include='player00_04*.*'
--include='player00_05*.*' --exclude="*" $indir/ $outdir