Locate
파일명을 고속으로 검색하는 Unix/Linux 명령어이다.
locate는 데이터베이스를 사용하여 모든 패스(Path)를 검색하여 Pattern 에 매칭된 파일명을 표시한다. 데이타베이스는 정기적으로(보통은 주 1회나 매일) 재구축 된다. 데이타베이스의 내용은, 전 유저가 액세스 할 수 있는 모든 파일명이다. Pattern 에는 쉘로 사용되는 와일드 카드(*
, ?
, \
, [" "]
)를 사용할 수가 있다. 그 경우, 와일드 카드를 쉘로 해석되지 않게 이스케이프 하지 않으면 안된다. 직전에 Backslash("\")를 붙이면, 어떠한 캐릭터도, 그 캐릭터가 가지는 특수한 의미가 지워진다. Slash("/") 도 포함해 어떠한 캐릭터도 특수한 의미를 가지지 않는다.
또, 와일드 카드를 포함하지 않는 패턴, 예를들면 "foo"를 지정했을 경우, locate는 "foo"로 해석한다.
역사적인 사정으로, 이전의 locate는 32 ~ 127 까지의 캐릭터 코드 밖에 취급할 수가 없었다. 현재의 처리 방법에서는 개행('\n')과 널('\0') 이외의 캐릭터 코드를 처리할 수 있다.
Usage
사용방법은 아래와 같다.
만약 수동으로 갱신할 경우 #updatedb 커맨드를 입력하면 된다.
updatedb
(이 항목은 updatedb로도 들어올 수 있다)
updatedb 유틸리티는, locate에 사용되는 데이터베이스 갱신을 실시한다. 통상적으로 스크립트에 의하여 주에 한 번 실행된다.
ArchLinux install
다른 배포판에서는 locate와 updatedb가 findutils 꾸러미에 있지만, 아치 꾸러미에는 더 이상 없다. 이를 사용하려면 mlocate 꾸러미를 설치하라. mlocate 꾸러미는 이전의 도구를 더욱 향상시켰으나 사용법은 똑같다. locate를 사용하기에 앞서 데이터베이스를 생성해야 한다. 이를 위해 간단히 updatedb 명령어를 루트 권한으로 실행하라.
데이터베이스를 최신 상태로 유지하기
When mlocate가 설치될 때 데이터베이스를 갱신할 /etc/cron.daily(cron이 매일 실행) 스크립트가 자동으로 설치된다. 또한 언제라도 updatedb를 수동으로 실행할 수 있다.
시간을 절약하기 위해 updatedb는 특정한 파일시스템과 경로를 무시하도록 /etc/updatedb.conf를 편집해서 설정할 수 있다. man updatedb.conf는 이 파일의 의미를 설명한다. 디폴트 설정 파일에서 무시되는 경로("PRUNEPATHS" 문자열에 지정됨) 중에서 /media와 /mnt가 있다. 따라서 locate는 외부 장치에 있는 파일을 찾지 못할 수도 있다.