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

관련 정보