Ubuntu 콘솔에서 FIND 명령을 사용하여 경로 패턴이있는 폴더 제외


0
PROJECTS
   |___ SITE1
   |      |____files (to exclude)
   |      |____img
   |      |____js
   |
   |___ SITE2
   |      |____files (to exclude)
   |      |____img
   |      |____js
   |
   |___ SITE3
          |____files (to exclude)
          |____img
          |____js

안녕하세요, 파일 폴더의 내용을 제외한 SITE x 폴더 로 검색하고 싶습니다 .

나는 이것을 시도하지만 파일 폴더 에 파일에 대한 권한 오류를 표시 합니다 (그래서 제외하지 않는 것 같습니다).

find . ! -path "*/files/*" -type f -name 'foo'

다음과 같이 표시됩니다 (PROJECTS 디렉토리에 있음).

./SITE1/img/foo.png
./SITE1/js/foo.js
find: `./SITE1/files/201501': Permission denied
find: `./SITE1/files/201412': Permission denied
find: `./SITE1/files/201501': Permission denied
... (the two firsts matches are pretty good, but I break the execution after, it print too many indesirble matches)

나는 askubuntu에 대한이 반응에서 영감을 받았다 .

또한 해결책을 찾지 않고이 예제 와 같이 -prune 옵션을 시도합니다 ...


이 검색과 egrep을 사용하고 싶지만 파일 이름을 원합니다.

egrep -Rns --exclude-dir=files 'foo' *

당신의 도움을 주셔서 감사합니다 !


더 많은 정보가 필요합니다. 나는 당신이 무엇을 요구하는지 전혀 모른다. 당신은 직접적인 질문이 없습니다. 요청한 특정 질문이 있도록 다시 작성해보십시오.
Eric F

1
내가 잘못 추측하지 않는 한, 제외는 "hits"가 표시되지 않지만 디렉토리가 보이지 않게하지는 않습니다. find 명령에 대한 설명서 (--help 출력, 매뉴얼 페이지 또는 기타)는 find의 동작 방식을 나타냅니다. 이 문서를 살펴 보셨습니까?
killermist

이것은 실제로 Windows 8에서 매우 쉽게 수행 할 수 있습니다 ... findLinux에 붙어 있거나 Windows를 사용할 수 있습니까?
Mokubai

-prune지시어를 시도하십시오 find. 매뉴얼 페이지 자체가 사용법에 대한 주제를 잘 밝히지 않기 때문에 예제를 검색하는 것이 좋습니다 (여기에는 슈퍼 유저에 몇 가지 좋은 예제가 있습니다) -prune.
G-Man

1
@BroSlow 윈도우 8에 당신이 할 모든 검색 상자 형 내부를 클릭입니다 -"files" -directory그것은 않습니다 정확히 , 먼저 새 터미널 창을 열지 않고도 요구 무슨 cd다음의 구문 파악, 디렉토리로 보내고 ' find명령을 사용합니다. 은 *nix은 "긴"방법처럼 많이 보인다. 그러나 나는 복음을 전하기 위해 여기에 있지 않았습니다. 다른 옵션이 있는지 또는 다른 방법이 도움이되는지보고 싶었습니다.
Mokubai

답변:


0

좋아. 끝났어 !

자두 인수를 사용하는 방법을 몰랐습니다. 이것은 내 요구에 응답

find * -path "*/files/*" -prune -o -name 'foo' -type f -print

더 자세한 설명은 여기


반면에 ! 와 구문이 있으면 궁금합니다 . 누군가가 아이디어가 있다면 AskUbuntu 의이 예제 와 같은 (NOT) 주장 .


예, 그러나 AskUbuntu연결 한 예제가 find해당 디렉토리를 계속 탐색하는 것을 멈추지 않으므로 여전히 오류가 발생합니다. 구문은 어떤 식 으로든 나쁘지 않으며 최악의 경우 결코 느리지 않습니다 (거의 항상 빠릅니다). *, 대신을 사용 .하면 최상위 디렉토리에서 도트 파일을 생략 할 가능성이 있습니다.
BroSlow
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.