상위 폴더와 하위 폴더의 트리가 있습니다. 하위 디렉터리에는 비슷한 이름이 있습니다. 하위 디렉토리에 저장된 파일을 검색하고 싶습니다. 어떻게 해야 하나요?
예를 들어:
Parent-Directory
Sub-Directory 1
input save bad
Sub-Directory 2
input save bad
Sub-Directory 3
input save bad
각 하위 디렉터리에는 input, save, bad라는 세 개의 폴더가 있습니다. 잘못된 하위 디렉터리에 있는 파일만 검색하고 싶습니다.
답변1
다음을 사용하여 이름이 지정된 디렉터리보다 한 수준 아래의 find
모든 디렉터리에서 재귀 검색을 수행 한다고 가정합니다.bad
Main Directory
find 'Main Directory'/*/bad ...rest of find options...
find
검색하고 싶은 내용을 말하지 않았기 때문에 나머지 옵션은 생략했습니다 .
find
여러 디렉토리를 검색 시작점으로 사용하는 기능. 여기에서는 쉘에 의해 다양한 디렉토리 경로로 확장될 파일 이름 와일드카드 패턴을 제공합니다 bad
.
다음 디렉토리 안이나 아래에 있는 모든 (일반) 파일의 경로 이름을 인쇄한다고 가정하십시오.
find 'Main Directory'/*/bad -type f
bad
디렉터리에 내부를 살펴봐야 할 하위 디렉터리가 없고 처리해야 하는 파일 수가 수천 개가 아닌 경우 다음을 사용할 수 있습니다.
'Main Directory'/*/bad/*
(마지막 파일이 *
처리해야 하는 파일의 파일 이름과 일치한다고 가정) 사용해야 하는 유틸리티가 무엇이든 상관없습니다. 예를 들어 다음을 사용합니다 ls
.
ls 'Main Directory'/*/bad/*
답변2
귀하의 질문이 불분명하지만 "BAD" 하위 디렉터리에서 파일을 찾으려는 경우 홈 디렉터리에서 다음 명령을 실행할 수 있습니다.
find . -maxdepth 2 -type d -name "BAD"
또는 사용
find . -name "*BAD*" -type f -o -name "*BAD*" -type d
설명하다
-o 명령을 내리거나 파일 경로 뒤의 매개변수를 완전히 삭제하므로 -name을 찾으십시오.끈" -type f -o -type d 계산 찾기. (-name "나쁜"-유형 f) -o (-유형 d).
대부분의 사용자는 다음과 같은 것을 선호합니다.
find . -name "*BAD*" -type f -o -name "*BAD*" -type d
계산 결과는
find . (-name "*BAD*" -type f) -o (-name "*BAD*" -type d)
-이름"나쁜"문자열이 포함된 이름을 검색합니다.
간단하게 유지하려면:
find . -maxdepth 2 -o -name "*BAD*"