본문으로 건너뛰기

Linux에서 which 명령어 사용법

· 약 3분

which 명령어는 주어진 명령어의 절대 경로를 찾는데 사용된다. 이 명령어는 PATH 환경 변수에 정의된 디렉터리에서 지정된 실행 파일을 검색한다. 즉, which 명령어를 사용하면 특정 시스템 명령어가 존재하는지와 그 명령어가 실행될 실제 위치를 확인할 수 있다.

PATH란 무엇인가?

Linux에서 PATH 실행 파일을 검색할 디렉터리를 알려주는 환경 변수이다. PATH는 실행 파일을 포함하는 디렉터리의 절대 경로 리스트로 구성되며, 각 항목은 콜론(:)으로 구분된다. PATH 변수의 내용을 확인하려면 echo 명령어를 사용하면 된다.

echo $PATH
which 명령어 사용법
which [OPTIONS] FILE_NAME...

예를 들어, ping 명령어의 절대 경로를 찾으려면 다음과 같이 입력한다.

which ping

복수의 명령어를 한 번에 찾을수도 있다.

which netcat uptime

/usr/bin/which
/usr/bin/uptime

검색은 PATH에 정의된 디렉터리를 왼쪽에서 오른쪽 순서로 진행한다. 만약 동일한 명령어가 여러 디렉터리에 존재한다면, 기본적으로 가장 먼저 찾은 하나만 출력한다. 모든 검색 결과를 출력하려면 -a 옵션을 사용하면 된다.

which -a touch

# output
/bin/touch
/usr/bin/touch

일반적으로 결과로 출력된 실행 파일 중 하나는 다른 하나의 심볼릭 링크일 가능성이 높다. 그러나 경우에 따라 동일한 명령어의 서로 다른 버전이 여러 위치에 설치되어 있거나, 단순히 이름이 같은 전혀 다른 명령어일 수도 있다.

또한, Linux 내장 명령어를 검색할 경우 결과가 출력되지 않을 수 있다. 하지만 일부 배포판에서는 관련 안내 메시지를 제공하기도 한다.

예를 들어, macOS에서 다음과 같이 입력하면:

which echo

# output
echo: shell built-in command

which 명령어는 환경 변수 PATH에 지정된 디렉터리에서 실행 파일을 검색하는 데 유용하다.