인수 목록에 없는 디렉토리 찾기

인수 목록에 없는 디렉토리 찾기

목록에 없는 디렉토리를 찾아야 합니다.

다음 디렉터리가 있다고 가정해 보겠습니다.

opt
cmd
XX

위의 3개를 제외한 모든 디렉터리를 가져와야 합니다.

답변1

그리고 find:

find /path -maxdepth 1 -not \( -name "opt" -or -name "cmd" -or -name "XX" \)
  • -maxdepth 1하위 디렉터리로 내려가는 일이 없습니다.
  • -not \( ... \)대괄호 안의 모든 내용을 무효화합니다.
    • -name ... -or -name ...: 제외하려는 이름은 다음과 관련이 있습니다.-or

또 다른 접근 방식은 find 를 사용하는 것입니다 -regex. 여기서 제외된 모든 디렉터리를 패턴에 넣을 수 있습니다.

find /path -maxdepth 1 -not -regex ".*/opt\|.*/cmd\|.*/XX"

답변2

사용중인 쉘에 따라 다음을 시도해 볼 수 있습니다 bash.

shopt -s extglob
ls -ld /!(opt|mnt|XX)

/이러한 디렉터리는 루트( ) 디렉터리에 있다고 가정합니다 . 그렇지 않으면 /문자가 생략됩니다.

관련 정보