리눅스 which whereis locate: 3가지 위치(경로) 확인 명령어

공정위 광고 문구 Ver 2.0

리눅스 which와 whereis 명령어 명령어의 위치를 알 수 있는 명령어는 find 명령어를 이용해서 파일을 찾을 수 있지만 find 명령어는 시간이 소요되는 단점도 존재합니다. locate 명령어는 파일명을 빠르게 검색할 때 사용할 수 있습니다.

리눅스 기본 명령어 3가지에 대해 알아 보겠습니다.

  • 리눅스 검색 명령어: 위치 확인 명령어
  • which, whereis, locate

✅ 리눅스 which 명령어

‘어느’, ‘어떤’, ‘어느 쪽’의 영어 뜻을 가진 which 명령어는 명령어의 위치 or alias(별칭)의 경로를 확인해 주는 명령어입니다. 모든 명령어 실행 파일을 검색할 수 있습니다.

리눅스 which 명령어 사용 예(여러 파일 이름)
  • which 명령어
  • PATH(변수)에 등록된 경로들만 찾음
  • 기본 옵션 및 사용 방법
which [-옵션] FILE_NAME(명령어 이름)
which find
/usr/bin/find

which -a httpd
/usr/sbin/httpd
  • -a 옵션을 사용해서 파일의 모든 항목을 확인할 수 있지만 자주 사용하지 않아 큰 의미는 없습니다.
~]# which ll
 alias ll='ls -l --color=auto'
	/usr/bin/ls

~]# which -a ll
alias ll='ls -l --color=auto'
	/usr/bin/ls
/usr/bin/which: no ll in (/root/.local/bin:/root/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin)

✅리눅스 whereis 명령어

리눅스 whereis 명령어는 실행 파일(바이너리), 소스 파일, man 페이지 파일의 위치를 찾아주는 명령어입니다. 기본 사용 옵션은 다음과 같습니다.

whereis -옵션 FILE_NAME(명령어 이름)
  • whereis 명령어 옵션
  • whereis 명령어 사용 예
~]# whereis httpd

httpd: /usr/sbin/httpd  /usr/lib64/httpd /etc/httpd /usr/share/httpd /usr/share/man/man8/httpd.8.gz
# -b 옵션 사용 시 이진 파일과 경로가 표시됩니다. 
~]# whereis -b httpd
httpd: /usr/sbin/httpd /usr/lib64/httpd /etc/httpd /usr/share/httpd
리눅스 whereis 명령어의 파일 설명

-b 옵션 외에 다른 옵션을 추가로 사용할 일은 많지 않습니다.

✅ 리눅스 locate 명령어

locate 명령어의 경우 배포판에서 기본 설치가 되어 있지 않는 경우가 있습니다.

dnf -y install mlocate
# 서버의 OS 버전에 맞게 설치.
yum -y install mlocate
리눅스 locate 명령어 설치 화면

리눅스 locate 명령어는 이미 생성된 데이터베이스를 통해 검색을 진행하기 때문입니다. 하지만 파일이나 디렉토리를 DB화 하여 사용하기 때문에 정보가 갱신되지 않으면 최신의 데이터가 출력되지 않을 수 있습니다.

  • locate 명령어, find 명령어 비교
  • locate
  • 빠른 검색 속도
  • 제한적인 검색 옵션(오직 파일명에만 근거)
  • 검색DB 사용 및 검색 경로 설정이 필요하지 않음.
  • 파일 목록 데이터베이스 > mlocate.db 파일을 미리 생성
  • find
  • 검색 속도가 느림
  • 다양한 검색 옵션
  • 검색 경로 설정
  • 시스템에서 파일을 검색하여 경로 출력
  • locate 기본 사용 방법
  • 정확한 사용을 위해 ‘updatedb’ 명령어로 업데이트 후 명령어를 실행하여 정확한 검색을 할 수 있습니다.
  •  /cat/lib/mlocate/mlocate.db 파일에 관련 정보가 있음.
locate -옵션 FILE_NAME
  • 주의 사항: NFS를 이용 중인 경우 update 명령어로 인해 마운트 된 영역이 느려질 수 있지만 발생될 확률 적음.

PRUNE_BIND_MOUNTS = "yes"
PRUNEFS = "9p afs anon_inodefs auto autofs bdev binfmt_misc cgroup cifs coda configfs cpuset debugfs devpts ecryptfs exofs fuse fuse.sshfs fusectl gfs gfs2 gpfs hugetlbfs inotifyfs iso9660 jffs2 lustre mqueue ncpfs nfs nfs4 nfsd pipefs proc ramfs rootfs rpc_pipefs securityfs selinuxfs sfs sockfs sysfs tmpfs ubifs udf usbfs ceph fuse.ceph"
PRUNENAMES = ".git .hg .svn .bzr .arch-ids {arch} CVS"
PRUNEPATHS = "/afs /media /mnt /net /sfs /tmp /udev /var/cache/ccache /var/lib/yum/yumdb /var/lib/dnf/yumdb /var/spool/cups /var/spool/squid /var/tmp /var/lib/ceph /var/lib/mock /sysroot/ostree/deploy"

# PRUNEFS에 NFS를 추가하면 updatedb 수행시 제외. | PRUNEPATHS 경로 지정 후 제외
Prune = 가지를 치다.
FS = File System
PATH = 경로

♣ locate 명령어 옵션

# 파일의 갯수
locate -c httpd.conf
3
# DB의 정보 확인
locate -S 
Database /var/lib/mlocate/mlocate.db:
	6750 directories
	63364 files
	3089573 bytes in file names
	1575941 bytes used to store database

Similar Posts

  • [Linux] lsof 명령어: 실행 중 파일 정보 출력

    lsof 명령어는 lisf open files의 약자로 리눅스 시스템에서 열려 있는 파일의 정보를 출력해 주는 명령어입니다. lsof 명령어는 파일을 포함하여 디렉터리, 네트워크 소켓, 파이프 등 프로세스가 사용 중인 다양한 리소스도 조회할 수 있습니다. ✅ lsof 명령어 기본 구문 명령어만 입력 했을 때는 현재 시스템에서 열린 모든 파일과 관련된 프로세스 정보를 출력합니다. ✅ lsof 명령어…

  • rm 명령어

    1. rm 명령어 ‘rm 명령어‘ 는 파일 및 디렉토리를 삭제하는 명령어이다. ‘rm 명령어’ 는 심볼릭 링크는 삭제하지만 링크의 대상 파일은 삭제하지 않는다. ls 명령어와 함께 많이 사용되는 명령어이다. rm(remove) 명령어 rm –remove 파일 및 디렉토리 삭제 ~]# rm -i –interactive 기존 파일을 삭제하기 전에 물어본다. inter:매장하다.    active:유효한,능동의 ~]# rm -r –recursive: 재귀 재귀적으로…

  • 리눅스 퍼미션(4,2,1)과 소유권 | chmod, chown, umask 명령어 | 스티키 비트

    리눅스 퍼미션(Permission)은 권한(&허가)을 의미합니다. 유닉스 계열 운영 체제들은 MS-DOS 계열의 운영 체제들은 멀티 테스킹 시스템이 아니며 멀티 유저 시스템 역시 아닙니다. 보통 컴퓨터는 하나의 키보드와 모니터를 가지고 한 명이 사용하지만 멀티 유저 시스템인 리눅스는 한 명 이상이 사용할 수 있다는 것을 의미합니다. 유닉스 계열의 멀티 유저 시스템은 운영 체제 설계 초기부터 깊게 내장된…

  • 리눅스 kill 명령어[kill -9 PID]

    리눅스 kill 명령어는 사용 중인 프로세스를 종료하는 명령어입니다. 터미널에서 프로세스에 시그널(Signal)을 보내서 프로세스를 종료합니다. 프로그램이 정지하거나 응답하지 않는 경우 일반적인 종료가 되지 않는 경우 등에 따라 명령어를 실행하게 됩니다. kill process는 사용 시 중요한 시스템 프로세스를 종료 시키면 시스템이 불안정해질 수 있기 때문에 주의해서 사용해야 합니다. ✅ 리눅스 kill 명령어 기본 사용 방법…

  • 리눅스: useradd 명령어 & passwd 명령어

    useradd 명령어는 리눅스에서 사용자의 ID(계정)를 생성하는 명령어입니다. root 권한으로 생성이 가능하며 기본적인 명령은 아래와 같습니다. 리눅스 useradd 명령어 옵션 리눅스 useradd 사용 예 기본으로 사용할 수 있는 예입니다. 리눅스 /etc/skel 디렉토리 계정 생성 시 설정 값이 정의되는 /etc/skel 데릭토리는 사용자를 생성 했을 때 해당 계정의 홈 디렉토리에 기본으로 들어가는 파일이 있습니다. /etc/skel 설정은…

  • echo 명령어: From 확장과 인용

    echo 명령어는 문자열을 그대로 출력해 주는 명령어이다. echo 명령어는 프롬프트에서 사용하는 일은 거의 없으며, 쉘 스크립트 작성 시에 자주 사용하는 명령어이다. 표준 출력 상에 해당 텍스트 인자를 표시한다. 1. echo 명령어 옵션 2. echo $ $뒤에 오는 문자열이 변수로 선언되어 있는 경우 해당 변수의 값을 출력해 준다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

Prove your humanity: 0   +   7   =