Linux에서 작업할 때 가장 일반적인 작업 중 하나는 파일 및 디렉토리를 검색하는 것입니다. Linux 시스템에는 파일을 검색할 수 있는 여러 명령이 있으며, 가장 많이 사용되는 명령은 찾기 및 찾기입니다.
locate 명령은 파일 및 디렉토리를 이름으로 검색하는 가장 빠르고 간단한 방법입니다.
이 글에서는 locate 명령어를 사용하는 방법에 대해 설명합니다.
locate를 설치
배포 및 시스템 프로비저닝 방식에 따라 locate 패키지가 Linux 시스템에 미리 설치되거나 설치되지 않을 수 있습니다.
locate 유틸리티가 설치되어 있는지 확인하려면 터미널을 열고 locate를 입력한 후 Enter 키를 누릅니다. 패키지가 설치된 경우 시스템에서 locate: 검색할 패턴이 없습니다.를 표시합니다. 그렇지 않으면 locate 명령을 찾을 수 없습니다.
locate가 설치되어 있지 않으면 distro의 패키지 관리자를 사용하여 쉽게 설치할 수 있습니다.
Ubuntu 및 Debian에 locate를 설치
sudo apt update
sudo apt install mlocate
CentOS 및 Fedora에 설치
sudo yum install mlocate
Locate 동작 방법
locate 명령은 업데이트된 b 명령으로 생성된 데이터베이스 파일을 통해 지정된 패턴을 검색합니다. 발견된 결과는 한 줄에 하나씩 화면에 표시됩니다.
mlocate 패키지를 설치하는 동안 24시간마다 업데이트된 b 명령을 실행하는 cron 작업이 생성됩니다. 이렇게 하면 데이터베이스가 정기적으로 업데이트됩니다. cron 작업에 대한 자세한 내용은 /etc/cron.daily/mlocate 파일을 확인하십시오.
데이터베이스는 다음과 같은 sudo 권한을 가진 사용자 또는 루트로 업데이트하여 수동으로 업데이트할 수 있습니다.
sudo updatedb
파일 및 디렉터리 수와 시스템 속도에 따라 업데이트 프로세스에 약간의 시간이 걸립니다.
데이터베이스 업데이트 후 생성된 파일은 찾기 결과에 표시되지 않습니다.
파일 시스템을 검색하는 보다 강력한 find 명령에 비해 locate는 훨씬 빠르게 작동하지만 많은 기능이 부족하며 파일 이름으로만 검색할 수 있습니다.
locate 명령어를 사용하는 방법
locate 명령에 대한 구문은 다음과 같습니다.
locate [OPTION] PATTERN...
locate 명령은 옵션 없이 사용할 경우 검색 패턴과 일치하고 사용자에게 읽기 권한이 있는 모든 파일 및 디렉토리의 절대 경로를 출력합니다.
예를 들어 .bashrc 파일을 검색하려면 다음을 입력합니다.
locate .bashrc
# /etc/bash.bashrc
# /etc/skel/.bashrc
# /home/jjeongil/.bashrc
# /usr/share/base-files/dot.bashrc
# /usr/share/doc/adduser/examples/adduser.local.conf.examples/bash.bashrc
# /usr/share/doc/adduser/examples/adduser.local.conf.examples/skel/dot.bashrc
출력에는 이름에 .bashrc 문자열이 포함된 모든 파일의 이름이 포함됩니다.
명령을 /root 디렉토리에 대한 액세스 권한이 없는 일반 사용자로 실행했으므로 /root/.bashrc 파일이 표시되지 않습니다.
결과 목록이 긴 경우 보다 나은 가독성을 위해 출력을 less 명령으로 파이핑할 수 있습니다.
locate .bashrc | less
locate 명령은 와일드카드 문자 *와 같은 글로벌 문자를 포함하는 패턴도 허용합니다. 패턴에 글로벌 문자가 없는 경우 명령은 *PATTERn*을(를) 검색합니다. 그래서 이전 예에서는 이름에 검색 패턴이 포함된 모든 파일이 표시됩니다.
일드카드는 0, 하나 이상의 문자를 나타내는 데 사용되는 기호입니다. 예를 들어 시스템의 모든 .md 파일을 검색하려면 다음을 입력합니다.
locate *.md
검색 결과를 제한하려면 -n 옵션과 표시할 결과 수를 차례로 사용합니다. 다음 명령은 모든 .py 파일을 검색하고 10개의 결과만 표시합니다.
locate -n 10 *.py
기본적으로 locate는 대소문자를 구분하는 검색을 수행합니다. -i(--ignore-case) 옵션은 대/소문자를 구분하지 않고 대/소문자를 구분하지 않는 검색을 실행하도록 지정합니다.
locate -i readme.md
# /home/linuxize/p1/readme.md
# /home/linuxize/p2/README.md
# /home/linuxize/p3/ReadMe.md
일치하는 모든 항목의 수를 표시하려면 -c(--count) 옵션을 사용합니다. 다음 명령은 이름에 .bashrc가 포함된 모든 파일의 수를 반환합니다.
locate -c .bashrc
# 6
기본적으로 locate는 발견된 파일이 파일 시스템에 아직 있는지 확인하지 않습니다. 최신 데이터베이스 업데이트 후 파일을 삭제한 경우 파일이 검색 패턴과 일치하면 검색 결과에 포함됩니다.
찾을 때 존재하는 파일 이름만 표시하려면 -e(--existing) 옵션을 사용합니다. 예를 들어 기존 .json 파일만 반환됩니다.
locate -e *.json
더 복잡한 검색을 실행하려면 패턴 대신 기본 regexp를 사용하여 검색할 수 있는 -r(--regexp) 옵션을 사용하십시오. 이 옵션은 여러 번 지정할 수 있습니다.
예를 들어 시스템의 모든 .mp4 및 .avi 파일을 검색하고 대소문자를 무시하려면 다음을 실행합니다.
locate --regex -i "(\.mp4|\.avi)"
locate 명령은 파일 시스템에서 이름이 지정된 패턴과 일치하는 파일 및 디렉토리를 검색합니다. 명령 구문은 기억하기 쉽고 거의 즉시 결과가 표시됩니다.
locate 명령 유형 man의 사용 가능한 모든 옵션에 대한 자세한 내용은 터미널에 있습니다.
'SW > 리눅스' 카테고리의 다른 글
Linux : Debian 10 : Apache Web Server 설치 방법, 예제, 명령어 (0) | 2021.11.11 |
---|---|
Linux : Debian 10 : MySQL 설치 방법, 예제, 명령어 (0) | 2021.11.10 |
Linux : Bash : Shebang 사용 방법, 예제, 명령어 (0) | 2021.11.07 |
Git : 로컬, 원격 브랜치 생성, 나열 방법, 예제, 명령어 (0) | 2021.11.06 |
Python : String 문자열 분리 방법, 예제, 명령어 (0) | 2021.11.05 |