리눅스 명령어 · 4 min read · Sep 17, 2025
리눅스 locate 명령어 초보자를 위한 가이드 (8가지 예제)

리눅스의 locate 명령어는 파일 및 디렉토리를 이름을 기반으로 신속하게 찾기 위해 사용되는 강력한 유틸리티입니다. 이 명령어는 일반적으로 updatedb 명령어에 의해 주기적으로 업데이트되는 미리 구축된 데이터베이스를 활용하여 빠른 검색을 수행하므로 find와 같은 다른 검색 도구보다 훨씬 빠릅니다. 사용자가 검색 패턴 뒤에 locate 명령어를 입력하면, 파일 시스템 자체가 아니라 이 데이터베이스를 스캔하여 거의 즉시 결과를 제공합니다. 이는 시스템 관리자와 파일을 신속하게 찾아야 하는 사용자에게 특히 유용합니다. 그러나 locate의 정확성은 데이터베이스가 얼마나 자주 업데이트되는지에 따라 달라지며, 다음 업데이트까지 파일 시스템의 최신 변경 사항을 반영하지 않을 수 있습니다.
이 튜토리얼에서는 이해하기 쉬운 예제를 통해 locate 명령어를 설명합니다. 여기서 언급된 모든 지침/예제는 Ubuntu 24.04에서 테스트되었습니다.
1. locate 명령어 설치하기
locate 명령어는 Ubuntu 및 Debian 리눅스에 기본적으로 설치되어 있지 않습니다. 다음 명령어를 사용하여 설치할 수 있습니다:
sudo apt install locate
locate는 미리 컴파일된 파일 이름 데이터베이스를 기반으로 파일 검색을 수행하므로, 후속 검색을 할 때 find 명령어보다 훨씬 빠릅니다. 그러나 사용하기 전에 파일 데이터베이스를 생성하고 업데이트해야 합니다. locate 데이터베이스를 생성하려면 다음 명령어를 실행하세요:
sudo updatedb이제 locate를 사용할 준비가 되었습니다.
2. 리눅스에서 locate 명령어 사용하는 방법
locate 명령어는 사용하기 매우 쉽습니다. 검색하려는 파일 이름을 전달하기만 하면 됩니다.
locate [filename]예를 들어, ‘dir2’ 문자열이 포함된 모든 파일 이름을 검색하고 싶다면, 다음과 같이 locate를 사용할 수 있습니다:
참고: ‘locate dir2’ 명령어(별표 없음)도 작동합니다. locate는 전달한 이름(예: NAME)을 NAME으로 암묵적으로 대체합니다.
3. locate 명령어가 작동하는 방식, 또는 왜 이렇게 빠른가
locate가 빠른 이유는 파일 시스템에서 검색된 파일이나 디렉토리 이름을 읽지 않기 때문입니다. 이 명령어는 사용자가 찾고 있는 것을 찾기 위해 updatedb 명령어로 준비된 데이터베이스를 참조하고, 그 검색을 기반으로 출력을 생성합니다.
이것은 좋은 접근 방식이지만 단점도 있습니다. 주요 문제는 시스템에 새 파일이나 디렉토리가 생성될 때마다 도구의 데이터베이스를 업데이트해야 올바르게 작동한다는 것입니다. 그렇지 않으면 명령어는 마지막 데이터베이스 업데이트 이후에 생성된 파일/디렉토리를 찾을 수 없습니다.
예를 들어, ‘Downloads’ 디렉토리에서 ‘tosearch’ 문자열이 포함된 파일을 찾으려고 하면, find 명령어는 출력에서 하나의 결과를 생성합니다:
하지만 locate 명령어를 사용하여 동일한 검색을 수행하면 출력이 없습니다.
이는 locate가 검색하는 데이터베이스가 시스템에서 파일이 생성된 후 업데이트되지 않았음을 의미합니다. 따라서 데이터베이스를 업데이트해야 하며, 이는 updatedb 명령어를 사용하여 수행할 수 있습니다. 방법은 다음과 같습니다:
sudo updatedb이제 동일한 locate 명령어를 다시 실행하면 출력에서 파일이 표시됩니다:
유사하게, 파일이나 디렉토리가 제거된 후에는 locate 데이터베이스가 업데이트되었는지 확인해야 합니다. 그렇지 않으면 명령어는 검색할 때 출력에서 파일을 계속 표시합니다.
4. locate가 출력에서 일치하는 항목의 수 또는 개수를 인쇄하도록 하는 방법
우리가 본 바와 같이, locate 명령어는 일치하는 파일의 이름과 그들의 전체 또는 절대 경로를 출력합니다. 그러나 원한다면 이 정보를 억제하고 일치하는 항목의 수 또는 개수만 인쇄하도록 도구를 사용할 수 있습니다. 이는 -c 명령줄 옵션을 사용하여 수행할 수 있습니다.
5. locate가 기존 파일에 해당하는 항목만 인쇄하도록 강제하는 방법
이 기사에서 이미 논의한 바와 같이, 시스템에서 파일이 제거되면 locate 데이터베이스를 다시 업데이트할 때까지 명령어는 출력에서 해당 파일 이름을 계속 표시합니다. 그러나 이 특정 경우에는 데이터베이스 업데이트를 건너뛰고도 출력에서 올바른 결과를 얻을 수 있습니다. 이는 -e 명령줄 옵션을 사용하여 가능합니다.
예를 들어, ‘filetosearch.txt’ 파일을 시스템에서 제거했습니다. 이는 더 이상 파일을 검색할 수 없는 find 명령어에 의해 확인되었습니다:
하지만 locate를 사용하여 동일한 작업을 수행했을 때, 여전히 출력에서 파일이 표시되었습니다:
그리고 우리는 그 이유를 알고 있습니다 - locate의 데이터베이스가 파일이 삭제된 후 업데이트되지 않았기 때문입니다. 그러나 -e 옵션을 사용하면 문제가 해결되었습니다:
locate 매뉴얼 페이지에서 이 옵션에 대해 다음과 같이 설명합니다: “locate가 실행될 때 존재하는 파일을 참조하는 항목만 인쇄합니다.”
6. locate가 대소문자 구분을 무시하도록 만드는 방법
기본적으로 locate 명령어가 수행하는 검색 작업은 대소문자를 구분합니다. 그러나 -i 명령줄 옵션을 사용하여 도구가 대소문자 구분을 무시하도록 강제할 수 있습니다.
예를 들어, 시스템에 ‘newfiletosearch.txt’와 ‘NEWFILETOSEARCH.txt’라는 두 개의 파일이 있습니다. 보시다시피, 파일 이름은 동일하지만 대소문자가 다릅니다. 만약 locate에게 ‘tosearch‘를 검색하라고 요청하면, 출력에서 소문자 이름만 표시됩니다:
하지만 -i 명령줄 옵션을 사용하면 명령어가 대소문자를 무시하도록 강제하고 두 파일 이름이 출력됩니다:
7. ASCII NUL로 출력 항목을 구분하는 방법
기본적으로 locate 명령어가 생성하는 출력 항목은 줄 바꿈( ) 문자로 구분됩니다. 그러나 원한다면 구분자를 변경하고 줄 바꿈 대신 ASCII NUL을 사용할 수 있습니다. 이는 -0 명령줄 옵션을 사용하여 수행할 수 있습니다.
예를 들어, 위의 마지막 섹션에서 사용한 동일한 명령어를 실행했지만 -0 명령줄 옵션을 추가했습니다:
그래서 줄 바꿈 구분자가 더 이상 존재하지 않음을 볼 수 있습니다 - NUL로 대체되었습니다.
8. locate 데이터베이스에 대한 정보 보기
locate가 어떤 데이터베이스를 사용하고 있는지, 그리고 데이터베이스에 대한 기타 통계를 알고 싶다면 -S 명령줄 옵션을 사용하세요.
9. locate를 사용하여 정확한 파일 이름 검색하기
기본적으로 locate를 사용하여 파일 이름을 검색할 때, 전달한 이름(예: NAME)은 암묵적으로 NAME으로 대체됩니다. 예를 들어, ‘testfile’이라는 파일 이름을 검색하면, testfile과 일치하는 모든 이름이 출력됩니다:

하지만 요구 사항이 ‘testfile’과 정확히 일치하는 이름을 가진 파일을 검색하는 것이라면, 이 경우 정규 표현식을 사용해야 하며, 이는 -r 명령줄 옵션을 사용하여 활성화할 수 있습니다. 따라서 정규 표현식을 사용하여 ‘testfile’만 검색하는 방법은 다음과 같습니다:
locate -r /testfile$정규 표현식이 처음이라면, 여기로 가세요. 다른 디렉토리로 전환하려면 셸의 cd 명령어를 사용할 수 있습니다.
결론
locate는 훨씬 더 많은 옵션을 제공하지만, 여기에서 논의한 옵션들은 명령줄 유틸리티에 대한 기본적인 아이디어를 제공하고 시작하는 데 충분해야 합니다. 여기에서 설명한 모든 옵션을 리눅스 머신에서 시도해보고, 도구의 매뉴얼 페이지에서 찾을 수 있는 다른 옵션으로 전환하는 것을 권장합니다.
새 게시물을 받은 편지함에서 받기
스팸은 없습니다. 언제든지 구독 해지 가능합니다.