반응형
which와 whereis의 차이
which와 whereis는 리눅스에서 명령어의 위치를 찾는 데 사용되는 두 가지 명령어입니다. 그러나 이들 명령어는 서로 다른 방식으로 동작하며, 목적도 다소 다릅니다. 아래에서 which와 whereis의 차이점을 설명하겠습니다.
1. which
which 명령어는 사용자가 입력한 명령어가 실행될 때, 시스템이 어디에서 해당 명령어를 찾는지를 보여줍니다. 주로 명령어가 위치한 실행 파일의 경로를 알려줍니다.
특징:
- PATH 환경 변수 사용:
which는 사용자의PATH환경 변수에 정의된 디렉터리에서만 해당 명령어를 찾습니다. - 단순 검색:
which는 입력된 명령어가 실행 가능한 파일인지를 확인하고, 그 경로를 반환합니다. - 다수의 위치 반환:
which는PATH에 동일한 이름의 파일이 여러 개 존재할 경우, 첫 번째로 발견된 경로만 반환하거나,-a옵션을 사용해 모든 경로를 반환할 수 있습니다.
예시:
which ls
위 명령어를 실행하면, ls 명령어의 경로(예: /bin/ls)를 반환합니다.
which -a python
이 명령어는 python 명령어가 존재하는 모든 경로를 반환합니다.

2. whereis
whereis 명령어는 특정 명령어에 관련된 여러 파일을 찾아줍니다. 이는 명령어의 실행 파일뿐만 아니라, 해당 명령어와 관련된 소스 코드, 매뉴얼 페이지 등도 함께 찾을 수 있습니다.
특징:
- 보다 광범위한 검색:
whereis는which와 달리PATH뿐만 아니라 시스템의 표준 위치에서 실행 파일, 소스 코드, 매뉴얼 페이지 등을 검색합니다. - 다양한 파일 유형:
whereis는 실행 파일뿐만 아니라, 해당 명령어와 관련된 매뉴얼 페이지(.man), 소스 파일(.c,.h등)을 포함한 다양한 파일 유형을 찾습니다. - 빠른 검색:
whereis는 미리 정의된 디렉터리에서 파일을 검색하므로,find명령어와 같은 보다 깊은 검색에 비해 속도가 빠릅니다.
예시:
whereis ls
위 명령어를 실행하면, ls 명령어의 실행 파일 경로, 소스 코드 경로, 매뉴얼 페이지 경로를 모두 반환합니다. 출력 예시:
ls: /bin/ls /usr/share/man/man1/ls.1.gz

주요 차이점 요약
- 목적:
which는 특정 명령어가 시스템에서 실행될 때, 실행 파일의 위치를 찾는 데 집중하며,whereis는 명령어와 관련된 실행 파일, 소스 파일, 매뉴얼 페이지 등을 모두 찾습니다. - 검색 범위:
which는 사용자의PATH환경 변수에 제한된 범위에서 검색하며,whereis는 더 넓은 시스템 범위에서 검색합니다. - 출력 내용:
which는 명령어의 실행 파일 경로만을 반환하는 반면,whereis는 실행 파일 외에도 관련된 소스 코드와 매뉴얼 페이지를 포함한 다양한 파일 경로를 반환합니다.
정리
which: 특정 명령어의 실행 파일 경로를PATH환경 변수 내에서 찾고자 할 때 유용합니다.whereis: 명령어와 관련된 모든 파일(실행 파일, 소스 코드, 매뉴얼 페이지 등)을 찾아야 할 때 유용합니다.
이 두 명령어는 각각의 목적에 맞게 사용하여 시스템에서 명령어의 위치와 관련 파일을 효과적으로 관리할 수 있습니다.
반응형
'Linuxpia > 리눅스 사용 팁' 카테고리의 다른 글
| 리눅스 최근 이슈 정리 (27) | 2024.09.18 |
|---|---|
| [리눅스 팁] rsync 명령어로 백업 (45) | 2024.09.05 |
| [리눅스 팁] 링크가 유용하게 사용되는 경우 (69) | 2024.08.23 |
| [리눅스 팁] 심볼릭 링크의 원본 파일과 심볼릭 파일을 삭제하는 경우 차이 (102) | 2024.08.22 |
| [리눅스 팁] 심볼릭 링크와 하드 링크 (79) | 2024.08.21 |