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 / 명령어 / tee - 파이프 출력을 화면과 파일에 동시 저장

Linux / 명령어 / tee - 파이프 출력을 화면과 파일에 동시 저장

Linux tee 명령어의 기본 문법과 실제 사용 예제를 설명합니다. 주요 옵션과 결과를 해석할 때 주의할 점을 확인할 수 있습니다.

Linux / 명령어 / parted - 파티션 표와 빈 공간 확인·관리

Linux / 명령어 / parted - 파티션 표와 빈 공간 확인·관리

Linux parted 명령어의 기능과 기본 문법을 설명합니다. 실제 사용 예제, 주요 옵션과 작업 전 확인할 점을 알아봅니다.

Linux / 명령어 / rsync - 파일·디렉터리의 변경분 동기화

Linux / 명령어 / rsync - 파일·디렉터리의 변경분 동기화

Linux rsync 명령어의 기능과 기본 문법을 설명합니다. 실제 사용 예제, 주요 옵션과 작업 전 확인할 점을 알아봅니다.

Linux / 명령어 / ps - 현재 프로세스 상태 확인

Linux / 명령어 / ps - 현재 프로세스 상태 확인

Linux ps 명령어의 기본 문법과 실제 사용 예제를 설명합니다. 주요 옵션과 결과를 해석할 때 주의할 점을 확인할 수 있습니다.

Linux / 명령어 / resolvectl - systemd DNS 설정과 이름 조회 상태 확인

Linux / 명령어 / resolvectl - systemd DNS 설정과 이름 조회 상태 확인

Linux resolvectl 명령어의 기능과 기본 문법을 설명합니다. 실제 사용 예제, 주요 옵션과 작업 전 확인할 점을 알아봅니다.

Linux / 명령어 / cut - 행에서 문자와 필드 추출

Linux / 명령어 / cut - 행에서 문자와 필드 추출

Linux cut 명령어의 기본 문법과 실제 사용 예제를 설명합니다. 주요 옵션과 결과를 해석할 때 주의할 점을 확인할 수 있습니다.

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

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

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

Linux / 명령어 / sed - 스트림에서 텍스트 검색·치환

Linux / 명령어 / sed - 스트림에서 텍스트 검색·치환

Linux sed 명령어의 기본 문법과 실제 사용 예제를 설명합니다. 주요 옵션과 결과를 해석할 때 주의할 점을 확인할 수 있습니다.

Linux 강좌 / PID와 PPID 이해하기 - 프로세스 확인과 관리

Linux 강좌 / PID와 PPID 이해하기 - 프로세스 확인과 관리

PID와 PPID의 의미와 부모·자식 프로세스의 관계를 설명합니다. ps와 pgrep으로 확인하고, 직접 만든 실습 프로세스를 안전하게 종료하는 방법을 익힙니다.

Linux / 명령어 / blkid - 블록 장치 UUID와 파일 시스템 형식 조회

Linux / 명령어 / blkid - 블록 장치 UUID와 파일 시스템 형식 조회

Linux blkid 명령어의 기능과 기본 문법을 설명합니다. 실제 사용 예제, 주요 옵션과 작업 전 확인할 점을 알아봅니다.