xargs를 사용하여 환경 변수에서 디렉토리 목록을 제외하는 find 명령을 구성하십시오.

xargs를 사용하여 환경 변수에서 디렉토리 목록을 제외하는 find 명령을 구성하십시오.

find: 에서 특정 디렉토리를 제외하는 방법을 알고 있습니다 find <path> ! -path <path to exclude>. 하지만, 많은 디렉터리를 제외해야 할 때나 제외해야 할 디렉터리 목록을 미리 알 수 없는 경우에는 이 방법을 사용하기가 너무 지루할 수 있습니다.

변수에 저장된 디렉터리 목록이 있다고 가정해 보겠습니다. 이러한 디렉터리를 제외하는 명령을 xargs구성하는 데 사용할 수 있는 것이 있습니까? find그렇다면 어떻게 해야 할까요?

답변1

"단순" 변수의 경우 디렉토리에는 공백이 포함될 수 없습니다. 공백이 변수 내에서 공백을 구분하기 때문입니다.

excludes='dir1 dir2 dir3'
findexcl=
set -f
for p in $excludes
do
  findexcl="$findexcl ! -path $p"
done
echo find ... $findexcl ...

관련 정보