rsyncと`--include`を使って何万ものファイルをフィルタリングする

rsyncと`--include`を使って何万ものファイルをフィルタリングする

その場所のファイル名に1、2、3、4、または5を含むファイルをplayer00_0[1..5]*.*意味するパターンに一致するファイルのみをコピーしようとしています。[1..5]ソースディレクトリには40Kファイルがあるため、bashを使用してglobs操作を実行することはできません。

私の試みは次のとおりです。

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

おすすめ記事