Linux / 명령어 / locate - 파일 이름 색인에서 빠르게 경로 검색

locate는 미리 만들어 둔 파일 이름 데이터베이스에서 경로를 검색합니다. 파일 시스템을 매번 순회하지 않아 빠르지만, 색인이 갱신되기 전의 새 파일이나 삭제된 파일 상태는 정확히 반영되지 않을 수 있습니다.

이 글에서는 locate의 기본 문법과 주요 옵션, 실제 사용 예제, 관련 명령과의 차이, 사용할 때 주의할 점을 설명합니다.

locate 명령어란?

배포판에 따라 plocate, mlocate 또는 GNU locate가 명령을 제공합니다. 데이터베이스는 보통 updatedb와 예약 작업으로 갱신되며, 권한 필터와 기본 데이터베이스 경로는 구현 및 시스템 설정에 따라 다릅니다.

기본 문법

locate [옵션] 패턴 ...

옵션과 세부 동작은 구현과 버전에 따라 달라질 수 있습니다. 현재 시스템에서는 locate --help와 man locate으로 설치된 명령의 설명을 확인하세요.

locate 기본 사용법

이름 일부로 검색하기

패턴이 경로 전체의 일부와 일치하는 결과를 빠르게 찾습니다.

locate nginx.conf

대소문자 무시하기

지원되는 구현에서 -i로 대소문자를 구분하지 않습니다.

locate -i readme.md

현재 존재하는 경로만 표시하기

-e 또는 --existing은 결과 경로가 현재 존재하는지 추가로 확인합니다.

locate -e '*.service'

빠른 검색 결과가 최신 파일을 보장하지 않는 이유

locate는 현재 디스크를 직접 훑는 대신 미리 만든 경로 색인을 검색합니다. 색인에 포함된 시스템의 예시:

locate /etc/passwd

예시 출력:

/etc/passwd

새 파일은 색인 갱신 전까지 안 보일 수 있고 이미 삭제된 파일이 남아 보일 수도 있습니다. 결과가 없을 때는 색인 상태와 검색 패턴을 확인하고, 현재 존재 여부가 중요하면 find로 다시 검사하세요.

주요 옵션

옵션 설명
-i 대소문자를 구분하지 않고 검색합니다.
-e, --existing 현재 존재하는 파일만 표시합니다.
-b, --basename 전체 경로가 아니라 마지막 파일명 부분만 검색합니다.
-c, --count 결과 대신 일치 개수를 출력합니다.
-l N, --limit N 최대 결과 수를 제한합니다.
-r REGEXP, --regexp REGEXP 정규 표현식으로 검색합니다.
-d DBPATH 검색할 데이터베이스를 지정합니다.

실전 활용 예제

정확한 파일명에 가깝게 찾기

basename 검색과 패턴을 조합해 디렉터리명 일치를 줄입니다.

locate -b '\hosts'

결과 수 제한하기

너무 많은 결과를 출력하기 전에 개수를 세거나 상한을 둡니다.

locate -c cache
locate -l 20 cache

색인 갱신하기

시스템 전체 데이터베이스 갱신에는 권한과 시간이 필요할 수 있습니다. 배포판의 예약 작업 정책을 먼저 확인합니다.

sudo updatedb

locate와 관련 명령 비교

명령 주요 역할 적합한 상황
locate 색인 기반 이름 검색 빠른 경로 탐색
find 현재 파일 시스템 직접 검색 최신 상태와 다양한 조건
which PATH 실행 파일 검색 실행 경로 확인
whereis 프로그램 관련 표준 경로 검색 바이너리·소스·매뉴얼 찾기

사용할 때 주의할 점

결과는 최신 상태가 아닐 수 있습니다

색인 이후 생성·이동·삭제된 경로는 누락되거나 남아 있을 수 있습니다.

권한과 개인정보를 고려합니다

데이터베이스 구축 방식에 따라 다른 사용자의 경로 노출을 제한하는 설정이 적용됩니다.

구현별 옵션을 확인합니다

plocate, mlocate, GNU locate는 공통 기능이 많지만 세부 옵션과 패턴 해석이 다를 수 있습니다.

FAQ

locate 명령이 설치되어 있지 않은 이유는 무엇인가요?

일부 배포판은 기본 설치하지 않습니다. 패키지 이름이 plocate 또는 mlocate일 수 있습니다.

방금 만든 파일이 검색되지 않는 이유는요?

아직 데이터베이스가 갱신되지 않았기 때문일 수 있습니다. 즉시 확인하려면 find를 사용하세요.

updatedb는 꼭 sudo로 실행해야 하나요?

시스템 전체 색인은 보통 관리자 권한이 필요하지만 구현과 설정에 따라 사용자 데이터베이스를 만들 수도 있습니다.

삭제한 파일이 결과에 남는 이유는요?

오래된 색인 항목입니다. -e로 존재 여부를 확인하거나 데이터베이스를 갱신하세요.

관련 글과 공식 문서

같은 카테고리의 다른 글
Linux / 명령어 / command - 명령어 검색과 별칭 우회 실행

Linux / 명령어 / command - 명령어 검색과 별칭 우회 실행

셸 command 명령어로 함수 검색을 건너뛰어 원래 명령을 실행하고, command -v로 명령 존재 여부를 확인하는 방법을 설명합니다. -p·-V 옵션과 builtin·exec·env의 차이도 정리합니다.

Linux / 명령어 / more - 텍스트를 화면 단위로 나누어 보기

Linux / 명령어 / more - 텍스트를 화면 단위로 나누어 보기

Linux more 명령어로 긴 텍스트를 화면 단위로 읽는 방법을 설명합니다. 이동과 검색 키, 파이프 사용법, less와의 차이를 함께 정리합니다.

Linux / 명령어 / which - PATH에서 실행 파일 경로 찾기

Linux / 명령어 / which - PATH에서 실행 파일 경로 찾기

Linux which 명령어로 PATH에서 실행 파일 경로를 찾는 방법을 설명합니다. type과 command -v의 차이, 별칭·함수 확인과 스크립트 이식성도 정리합니다.

Linux / 명령어 / wc - 줄·단어·문자 수 계산

Linux / 명령어 / wc - 줄·단어·문자 수 계산

Linux wc 명령어로 줄·단어·바이트·문자 수를 확인하는 방법을 설명합니다. 개행 기준의 줄 수, -c와 -m 차이, 여러 파일 합계와 안전한 파이프 활용 예제를 정리합니다.

Linux 강좌 / 프로세스 확인·일시정지·종료하기

Linux 강좌 / 프로세스 확인·일시정지·종료하기

ps, top, pgrep으로 프로세스의 상태와 자원 사용량을 확인합니다. 실습 프로세스에 STOP, CONT, TERM을 보내고 셸 작업과 서비스의 차이를 익힙니다.

Linux / Memo

Linux / Memo

리눅스와 관련된 여러 정보를 정리합니다.

Linux / 명령어

Linux / 명령어

리눅스에서 자주 사용하는 명령어를 파일, 텍스트, 권한, 프로세스, 시스템, 디스크, 네트워크와 패키지 관리 작업별로 정리했습니다. 링크가 있는 명령어는 자세한 사용법과 예제를 확인할 수 있습니다.

Linux / 명령어 / bzip2 - 파일을 bzip2 형식으로 압축하기

Linux / 명령어 / bzip2 - 파일을 bzip2 형식으로 압축하기

Linux bzip2 명령어의 용도와 기본 문법을 알아봅니다. 파일 처리 예제, 주요 옵션과 원본 보존·덮어쓰기 주의점을 설명합니다.

Linux / 명령어 / type - 명령어 유형과 실행 대상 확인

Linux / 명령어 / type - 명령어 유형과 실행 대상 확인

Bash type 명령어로 별칭, 예약어, 함수, 내장 명령과 실행 파일을 구분하는 방법을 설명합니다. 모든 후보와 경로 확인, command -v·which와의 차이 및 스크립트 활용법을 다룹니다.

Linux / 네트워크 / IP 확인하는 방법

Linux / 네트워크 / IP 확인하는 방법

Linux에서 ip address와 ip route get으로 인터페이스 주소와 실제 출발지 IP를 확인하는 방법을 설명합니다. 사설·공인 IP, IPv4·IPv6와 컨테이너 환경의 차이도 정리합니다.