문자열이 디렉토리 이름의 일부일 때 특정 문자열로 디렉토리 이름을 재귀 적으로 검색하는 방법


73

문자열이 디렉토리 이름의 일부일 때 특정 문자열로 디렉토리 이름을 재귀 적으로 검색하려면 어떻게해야합니까?

예를 들어, 디렉토리 이름은 "8.0.3-99966_en"이지만 문자열이 "99966"인 디렉토리를 재귀 적으로 검색하려고합니다.

답변:


95

다음 find명령을 사용할 수 있습니다 .

find YOUR_STARTING_DIRECTORY -type d -name "*99966*" -print

예:

find ~ -type d -name "*99966*" -print

-type d홈 디렉토리 ( ~) 에서 시작 하여 이름이 "99966"( -name "*99966*") 인 문자열을 포함하는 모든 디렉토리 ( )를 찾아서 출력해야합니다 ( -print).


검색에서 특정 디렉토리를 제외하려면 어떻게해야합니까? 검색해야하지만 관심이없는 많은 / proc 결과가 나타납니다.
Kozuch

@Kuzuch (잠시 후!) : 부정적인 grep을 사용하여 sinf 검색을 다음과 같은 추천으로 파이프 할 수 있습니다. find <whatever> | grep -v "/ proc"- 검색 문자열을 포함 하는 모든 행 필터링 합니다.
Juan Lanus


8

당신은 파이프 출력 할 수 grep는 디렉토리 이름을 강조해야합니다
같은 뭔가를

find / -type d | grep "directory name"

/전체 컴퓨터를 검색 할 수 표시


@ 잔나 당신이 맞아, 나는 대답을 편집했습니다. 지적 해 주셔서 감사합니다
Collin

3

이 작업을 수행하는 쉬운 방법은을 사용하는 것 find | egrep string입니다. 적중이 너무 많으면 -type d찾기에 플래그를 사용하십시오 . 검색하려는 디렉토리 트리의 시작 부분에서 명령을 실행하십시오. 그렇지 않으면 디렉토리를 인수로 제공 find해야합니다.

이를 수행하는 다른 방법은을 사용하는 것 ls -laR | egrep ^d입니다.

그리고 locate명령도 편리합니다.locate string

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.