디렉터리를 더 효율적으로 검색하는 ‘find’ 명령 사용 방법

이 자습서에서는 Linux에서 디렉토리를 찾는 다양한 방법을 안내합니다. 이미 알고 계실 것처럼, Linux에서 모든 것은 파일이며 디렉토리도 포함됩니다. 그리고 Linux 사용자가 명령줄에서 수행하는 일 중 하나는 파일이나 디렉토리를 검색하는 것입니다.

명령줄에서 파일을 검색하는 데 사용되는 여러 가지 방법과 유틸리티로는 find, locate, which 등이 있습니다. 그러나 마지막 유틸리티인 (which)은 명령을 찾는 데에만 사용됩니다.

이 자습서의 범위에서는 주로 find 유틸리티에 초점을 맞추며, 이는 라이브 Linux 파일 시스템에서 파일을 검색하며 locate에 비해 효율적이고 신뢰할 수 있습니다.

locate의 단점은 updatedb에 의해 생성된 하나 이상의 데이터베이스를 읽으며, 라이브 파일 시스템을 통해 검색하지 않는다는 것입니다. 또한, 검색을 시작할 위치에 대한 유연성을 제공하지 않습니다.

아래는 locate 명령을 실행하는 구문입니다:

# locate [option] [search-pattern]

locate의 단점을 보여주기 위해, 우리는 현재 작업 디렉토리에서 pkg라는 디렉토리를 찾는다고 가정해 봅시다.

참고: 아래 명령어에서 옵션 --basename 또는 -blocate에게 파일(디렉토리) 기본 이름(정확히 pkg)만 일치시키도록 지시하지만 경로(/path/to/pkg)는 일치시키지 않습니다. \는 글로빙 문자로, pkg*pkg*로 암시적으로 대체하는 것을 비활성화합니다.

$ locate --basename '\pkg'
Find Directory Using locate Command

위의 명령어 출력에서 볼 수 있듯이, locate는 루트 (/) 디렉토리부터 검색을 시작하므로 같은 이름을 가진 다른 디렉토리도 일치됩니다.

따라서 이 문제를 해결하기 위해 아래의 간단한 구문을 따라 find를 사용하십시오:

$ find starting-point options [expression]

몇 가지 예를 살펴보겠습니다.

현재 작업 디렉토리 내에서 위와 같은 디렉토리 (pkg)를 찾으려면, 다음 명령을 실행하십시오. 여기서 -name 플래그는 이 경우 디렉토리 기본 이름인 표현을 읽습니다.

$ find . -name "pkg"

Permission denied” 오류가 발생하면 다음과 같이 sudo command 를 사용하십시오:

$ sudo find . -name "pkg"
Search a Directory Using find Command

당신은 전문적인 인터넷 기술 번역 엔진입니다. 다음 텍스트를 한국어로 번역하고 해설 없이 번역된 텍스트만 반환해주세요. 번역은 언어 사용 습관을 준수해야 합니다. find가 다른 파일 유형을 검색하지 못하도록하려면 파일 유형을 지정하는 -type 플래그를 사용하여 (아래 명령어에서 d는 디렉터리를 의미) 다음과 같이 하십시오:

$ sudo find . -type d -name "pkg"

또한, 디렉터리를 긴 형식으로 나열하려면, 작업 스위치 -ls를 사용하십시오:

$ sudo find . -type d -name "pkg" -ls
Find and List Directory

다음으로, 옵션 -iname을 사용하여 대소문자를 구분하지 않는 검색을 활성화할 수 있습니다:

$ sudo find . -type d -iname "pkg" 
$ sudo find . -type d -iname "PKG" 
Find Directory with Case Sensitive

더 흥미로운 고급 사용 정보를 찾으려면 findlocate의 man 페이지를 읽어보세요.

$ man find
$ man locate

마지막으로, find 명령어locate 명령어와 비교했을 때 리눅스 시스템에서 파일(또는 디렉터리)을 검색하는 데 더 신뢰할 수 있고 효율적입니다.

이전과 마찬가지로 피드백이나 질문을 아래 댓글 섹션을 통해 보내는 것을 잊지 마세요. 마지막으로, 항상 Tecmint에 연결되어 있으세요.

Source:
https://www.tecmint.com/find-directory-in-linux/