使用 rsync 和 `--include` 过滤数万个文件

使用 rsync 和 `--include` 过滤数万个文件

我试图仅复制与模式匹配的文件, 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

相关内容