Linux / 명령어 / whereis - 명령의 바이너리·소스·매뉴얼 위치 찾기

whereis는 명령과 관련된 바이너리, 소스 코드, 매뉴얼 페이지를 표준 시스템 위치에서 찾습니다. PATH만 검색하는 which와 달리 여러 종류의 관련 파일을 한 번에 확인할 때 유용합니다.

이 글에서는 whereis의 기본 문법과 주요 옵션, 실제 사용 예제, 관련 명령과의 차이, 사용할 때 주의할 점을 설명합니다.

whereis 명령어란?

util-linux의 whereis는 환경 변수와 알려진 하드코딩 경로 등을 바탕으로 검색 위치를 구성합니다. 전체 파일 시스템을 재귀 탐색하는 명령이 아니므로 임의의 사용자 디렉터리나 비표준 설치 위치는 누락될 수 있습니다.

기본 문법

whereis [옵션] 이름 ...

옵션과 세부 동작은 구현과 버전에 따라 달라질 수 있습니다. 현재 시스템에서는 whereis --help와 man whereis으로 설치된 명령의 설명을 확인하세요.

whereis 기본 사용법

명령 관련 위치 모두 찾기

바이너리와 매뉴얼 등 발견한 경로를 한 줄에 표시합니다.

whereis bash

바이너리만 찾기

-b로 실행 파일 검색만 선택합니다.

whereis -b ssh

매뉴얼만 찾기

-m으로 매뉴얼 페이지 위치만 찾습니다.

whereis -m printf

바이너리와 매뉴얼 위치 구별하기

whereis는 이름과 관련된 실행 파일·매뉴얼 등의 표준 위치를 검색합니다. 전체 디스크를 재귀 검색하지 않습니다.

whereis ls

예시 출력(설치 경로는 환경마다 다름):

ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz

앞의 경로는 실행 파일, 뒤의 경로는 매뉴얼 파일입니다. 현재 셸이 실제로 선택하는 실행 경로를 알고 싶다면 type 또는 command -v를 사용하세요.

주요 옵션

옵션 설명
-b 바이너리를 검색합니다.
-m 매뉴얼 페이지를 검색합니다.
-s 소스 파일을 검색합니다.
-B DIRS -f 바이너리 검색 경로를 지정합니다.
-M DIRS -f 매뉴얼 검색 경로를 지정합니다.
-S DIRS -f 소스 검색 경로를 지정합니다.
-u 선택한 종류에서 일반적이지 않은 항목을 찾습니다.
-l 실제 검색 경로 목록을 표시합니다.

실전 활용 예제

검색 경로 확인하기

결과가 예상과 다르면 -l로 현재 구현이 확인하는 경로를 먼저 봅니다.

whereis -l

사용자 지정 경로에서 바이너리 찾기

경로 목록 옵션 뒤에는 파일 이름 처리를 시작하는 -f가 필요합니다.

whereis -B /usr/local/bin /opt/tools/bin -f mytool

실행 경로와 관련 파일 함께 진단하기

셸 선택 결과와 표준 위치의 관련 파일을 각각 확인합니다.

command -v python3
whereis python3

whereis와 관련 명령 비교

명령 주요 역할 적합한 상황
whereis 표준 위치의 관련 파일 바이너리·소스·매뉴얼 탐색
which PATH 실행 파일 외부 실행 경로 확인
type 셸 명령 종류 별칭·함수·내장 포함 진단
find 경로 직접 순회 임의 위치와 복잡한 조건

사용할 때 주의할 점

전체 디스크 검색이 아닙니다

검색 경로 밖에 설치된 파일은 보이지 않을 수 있습니다.

이름에는 경로를 넣지 않습니다

일반적으로 프로그램 이름을 지정하며 앞선 경로와 알려진 확장자는 내부적으로 처리됩니다.

-B·-M·-S 뒤의 -f를 확인합니다

검색 디렉터리 목록이 끝나고 파일 이름이 시작됨을 구분하지 않으면 인수 해석이 달라집니다.

FAQ

whereis는 PATH만 검색하나요?

아닙니다. 표준 바이너리·소스·매뉴얼 경로와 환경에서 얻은 위치를 검색합니다.

아무 결과가 없는 이유는 무엇인가요?

비표준 위치에 설치됐거나 선택한 종류의 파일이 검색 경로에 없을 수 있습니다.

검색 경로를 볼 수 있나요?

util-linux 구현에서는 whereis -l을 사용합니다.

전체 시스템에서 파일을 찾으려면요?

현재 상태를 직접 검색하려면 find, 색인 기반 이름 검색은 locate를 사용합니다.

관련 글과 공식 문서

같은 카테고리의 다른 글
Linux / 명령어 / mv - 파일 이동과 이름 변경

Linux / 명령어 / mv - 파일 이동과 이름 변경

Linux mv 명령어로 파일과 디렉터리를 이동하거나 이름을 변경하는 방법을 설명합니다. 덮어쓰기 방지, 파일 시스템 간 이동과 안전한 자동화 방법도 정리합니다.

Linux 강좌 / 배포판 선택하기

Linux 강좌 / 배포판 선택하기

리눅스 입문과 서버 실습에 Ubuntu와 Rocky Linux 중 무엇을 선택하면 좋을까요? 학습 목표, 패키지 관리 방식과 지원 정책을 기준으로 두 배포판을 비교합니다.

Linux / 명령어 / ssh-copy-id - SSH 공개키를 원격 계정에 등록

Linux / 명령어 / ssh-copy-id - SSH 공개키를 원격 계정에 등록

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

Linux / 명령어 / ethtool - 네트워크 링크·드라이버 정보 확인

Linux / 명령어 / ethtool - 네트워크 링크·드라이버 정보 확인

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

Linux / 명령어 / zip - 여러 파일을 ZIP 아카이브로 묶기

Linux / 명령어 / zip - 여러 파일을 ZIP 아카이브로 묶기

Linux zip 명령어의 용도와 기본 문법을 알아봅니다. 파일 처리 예제, 주요 옵션과 원본 보존·덮어쓰기 주의점을 설명합니다.

Linux / 명령어 / locate - 파일 이름 색인에서 빠르게 경로 검색

Linux / 명령어 / locate - 파일 이름 색인에서 빠르게 경로 검색

Linux locate 명령어로 파일 이름 색인을 빠르게 검색하는 방법을 설명합니다. updatedb, 최신성 한계, 패턴과 정규 표현식, find와의 차이를 정리합니다.

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

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

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

Linux 강좌 / 프로세스 확인·일시정지·종료하기

Linux 강좌 / 프로세스 확인·일시정지·종료하기

ps, top, pgrep으로 프로세스의 상태와 자원 사용량을 확인합니다. 실습 프로세스에 STOP, CONT, TERM을 보내고 셸 작업과 서비스의 차이를 익힙니다.

Linux / 명령어 / pacman - Arch Linux에서 패키지 설치와 전체 시스템 업데이트

Linux / 명령어 / pacman - Arch Linux에서 패키지 설치와 전체 시스템 업데이트

Linux pacman 명령어의 적용 배포판과 기본 작업을 설명합니다. 패키지 조회·설치 예제, 주요 옵션과 시스템 변경 시 주의점을 알아봅니다.

Linux / 명령어 / zypper - openSUSE·SUSE에서 패키지와 저장소 관리

Linux / 명령어 / zypper - openSUSE·SUSE에서 패키지와 저장소 관리

Linux zypper 명령어의 적용 배포판과 기본 작업을 설명합니다. 패키지 조회·설치 예제, 주요 옵션과 시스템 변경 시 주의점을 알아봅니다.