본문 바로가기

리눅스

whereis 명령어와 which 명령어 차이점

728x90

whereis 명령어와 which 명령어 차이점

whereis와 which는 모두 리눅스와 유닉스 운영체제에서 사용되는 명령어로 실행 가능한 프로그램의 실행 파일 위치를 찾는 데 사용됩니다.

 

그러나 둘은 목적과 사용 방법에 차이가 있습니다.

 

  • whereis 명령어는 프로그램 실행 파일 소스 코드 및 man 페이지의 위치를 검색합니다. 즉 검색 범위가 넓습니다.
  • 반면에 which 명령어는 주어진 명령어나 프로그램이 어느 경로에서 실행되는지 검색합니다. 즉 검색 범위가 좁습니다.

which 명령어는 입력한 명령어의 실행 파일 경로를 찾아줍니다.

예를 들어 which ls 명령어를 실행하면 ls 명령어가 /bin/ls 경로에 있다는 정보를 제공합니다. which 명령어는 PATH 환경 변수에 정의된 경로를 검색하여 실행 파일을 찾습니다. 즉 PATH 환경 변수에 정의된 경로만 검색하므로 프로그램 실행 파일이 PATH에 없는 경우 실행 파일을 찾지 못합니다.

$ which java
/usr/lib/jvm/zulu11/bin/java

 

반면 whereis 명령어는 입력한 명령어의 실행 파일 뿐만 아니라 매뉴얼 페이지와 소스 코드 파일의 위치도 찾아줍니다.

즉 whereis 명령어는 입력한 명령어에 대한 전체적인 정보를 제공합니다. 또한 whereis 명령어는 시스템 전체에서 파일을 검색하기 때문에 which 명령어와 달리 PATH 환경 변수에 정의된 경로와 상관없이 파일을 찾을 수 있습니다.

$ whereis java
java: /usr/bin/java /usr/local/java /usr/lib/jvm/zulu11-ca/bin/java /usr/share/man/man1/java.1.gz

 

따라서 which 명령어는 명령어 실행 파일의 경로만을 찾아주는 반면 whereis 명령어는 명령어 실행 파일 뿐만 아니라 매뉴얼 페이지와 소스 코드 파일의 위치도 찾아주는 것이 차이점입니다. 그러므로 명령어 실행 파일만 찾을 경우 which 명령어를 사용하고 명령어에 대한 전체 정보를 찾을 경우 whereis 명령어를 사용할 수 있습니다.

 

728x90