ioerror

which 사용법 및 옵션 - 실행 파일의 위치(절대 경로)를 찾는 명령어 본문

OS

which 사용법 및 옵션 - 실행 파일의 위치(절대 경로)를 찾는 명령어

반응형

which 사용법 및 옵션 - 실행 파일의 위치(절대 경로)를 찾는 명령어

which - Which

which 명령어는 시스템의 환경 변수 PATH에 등록된 디렉토리를 순회하여, 지정한 명령어의 실행 파일이 존재하는 위치(절대 경로)를 찾아 출력한다. 동일한 이름의 프로그램이 여러 디렉토리에 설치되어 있을 때 실제 실행되는 파일의 위치를 확인하는 용도로 주로 사용된다.

1. 명령어 용도

  • 특정 명령어가 실행될 때 참조되는 실제 비터미널/터미널 바이너리 파일 경로 확인
  • 개발 환경 구축 후 시스템에 설치된 특정 실행 파일(Python, Node.js, GCC 등)의 버전별 참조 경로 검증
  • 시스템 환경 변수 PATH 내 중복된 명령어 바이너리 파일들의 우선순위 파악

2. 명령어 서식

Bash
 
which [옵션] [--] 명령어명 [명령어명2 ...]

3. 명령어 옵션

  • 주요 옵션 소개 테이블
옵션 설명 사용가능 OS 및 쉘
-a, --all PATH 환경 변수에서 매칭되는 모든 실행 파일 경로를 순서대로 출력 [Linux] [macOS] [FreeBSD]
-i, --read-alias 표준 입력(stdin)으로부터 alias 목록을 읽어 매칭되는 alias 정보 출력 [GNU/Linux]
--skip-alias alias 확인 설정을 스킵함 [GNU/Linux]
--skip-dot PATH 환경 변수에 포함된 현재 디렉토리(.) 검색을 스킵함 [GNU/Linux]
--skip-tilde PATH 환경 변수에 포함된 홈 디렉토리(~) 검색을 스킵함 [GNU/Linux]
--show-dot PATH 환경 변수 내 현재 디렉토리(.)의 명시적 매칭 여부 표시 [GNU/Linux]
--show-tilde PATH 환경 변수 내 홈 디렉토리(~)의 명시적 매칭 여부 표시 [GNU/Linux]
-v, -V, --version which 명령어의 버전 정보를 출력 [GNU/Linux]
--help 명령어의 사용법 및 도움말을 출력 [GNU/Linux]
  • 명령어 옵션 사용시 결과 예시
Bash
 
# 단일 명령어의 실행 경로 확인
which python3
# /usr/bin/python3

# PATH 환경 변수 전체에서 매칭되는 모든 경로 검색
which -a python3
# /usr/bin/python3
# /usr/local/bin/python3

# 존재하지 않는 명령어 검색 시 아무것도 출력하지 않고 종료 코드 1 반환
which non_existent_command
# (출력 없음)

# 여러 명령어를 동시에 검색
which gcc g++ make
# /usr/bin/gcc
# /usr/bin/g++
# /usr/bin/make
  • which python3 실행 시 기본적으로 PATH에서 가장 먼저 발견된 단일 경로 /usr/bin/python3가 출력된다.
  • -a 옵션을 사용할 경우 PATH 내 설정된 모든 순서를 탐색하여 발견되는 모든 파일 경로를 줄바꿈 형태로 출력한다.

4. 명령어 특이사항(유의사항)

  • which 명령어는 셸 내장 명령어(Built-in Command, 예: cd, echo, pwd 등)나 셸 별칭(Alias), 셸 함수(Function)에 대한 정확한 위치를 찾지 못하거나 디스크 상의 바이너리 파일만을 기준으로 탐색하는 한계가 존재한다.
  • 셸 환경 내부에서 실제 실행될 명령어의 정의나 유형을 파악하려면 which 대신 POSIX 표준 명령어인 command -v 또는 셸 내장 명령어 type을 사용하는 것이 권장된다.
  • 쉘 스크립트 작성 시 이식성을 높이기 위해서는 which보다 command -v를 사용하는 것이 안전하다.

관련 명령어들

  • type : 명령어가 셸 내장 명령어인지, 별칭인지, 외부 파일인지 유형을 출력한다.
  • command : 셸 함수나 별칭을 우회하여 지정한 명령어를 실행하거나 위치를 반환한다.
  • whereis : 명령어의 실행 파일, 소스 코드, 매뉴얼 페이지 위치를 동시에 탐색한다.
  • locate : 미리 생성된 데이터베이스 목록을 기반으로 지정한 파일의 경로를 빠른 속도로 탐색한다.

https://ioerror.tistory.com/entry/UNIX-Linux-Command-Reference

 

UNIX & Linux Command Reference

유닉스 / 리눅스 명령어 표유닉스와 리눅스 환경에서 자주 사용되는 필수 명령어들을 완벽하게 정리한다. 서버 관리, 프로그래밍, 일상적인 시스템 운영 등 어떤 목적이든 터미널 환경을 능숙하

ioerror.tistory.com

 

반응형
Comments