물결표("~")로 시작하는 폴더를 제외하고 폴더를 찾으려고 합니다. 다음을 시도했지만 결과가 없습니다. find
물결표가 와일드카드 문자로 해석되는 것 같습니다 .
find . -type d -not -path '*/\~*'
find . -type d -not -path '*/~*'
find . -type d -not -regex '.*/~.*'
find . -type d -not -regex '.*/\~.*'
내 버전의 find는 find (GNU findutils) 4.6.0
.
답변1
./path/to/~dir
폴더를 건너뛰되 건너뛰지 않으 ./path/to/~dir/subdir
려면 다른 사람들이 이미 말했듯이 다음을 수행할 수 있습니다.
find . ! -name '~*' -type d -print
당신이 원하지 않는다면감소이러한 폴더에 들어가려면(더 많은 폴더를 찾으려면) 다음을 수행합니다.
find . -name '~*' -prune -o -type d -print
이는 find
이름으로 시작하는 디렉토리에 루트가 있는 분기를 제거하라는 의미입니다 ~
.
이는 기본적으로 귀하의 것과 기능적으로 동일해야 합니다.
find . -type d ! -path '*/~*'
단지 후자는 정리하지 않기 때문에 디렉토리를 인쇄하지 않더라도 여전히 해당 디렉토리를 살펴보므로 효율성이 떨어집니다.
¹ 몇 가지 차이점이 있습니다. 즉, 첫 번째 이름은 잘못된 문자가 포함된 파일 이름과 일치하지 않을 *
수 있습니다 .*/~*
답변2
-name
표현식이 테스트하는 내용을 지정하려면 이 옵션을 사용해야 합니다 . 다음은 나에게 효과적이었습니다.
find . -type d ! -name '~*'
답변3
이름 테스트는 괜찮을 것입니다:
find . -type d ! -name '~*'