ioerror

where 사용법 및 옵션 - 지정한 명령어가 존재하는 모든 경로 및 별칭 위치를 검색하는 Shell 내장 명령어 본문

OS

where 사용법 및 옵션 - 지정한 명령어가 존재하는 모든 경로 및 별칭 위치를 검색하는 Shell 내장 명령어

반응형

where 사용법 및 옵션 - 지정한 명령어가 존재하는 모든 경로 및 별칭 위치를 검색하는 Shell 내장 명령어

where - Where

지정한 명령어가 환경 변수 PATH 내의 어떤 경로에 설치되어 있는지, 셸 내장 명령어(Built-in)나 별칭(Alias) 또는 함수(Function)로 정의되어 있는지 탐색하여 해당되는 모든 위치를 순서대로 출력하는 셸 내장 명령어이다. 주로 C Shell(tcsh, csh) 및 Z Shell(zsh) 환경에서 기본 제공되며, 특정 명령의 실행 파일 위치나 별칭 중첩 여부를 전수 조사할 때 활용되다.

1. 명령어 용도

  • [tcsh, csh, zsh]
  • PATH 경로 내에 동일한 이름의 실행 파일이 여러 디렉터리에 중복 존재할 때 실제 실행되는 파일 외에 다른 파일의 경로까지 모두 확인할 때 활용되다.
  • 특정 명령어에 별칭(alias)이 설정되어 있어 원본 실행 파일의 위치를 파악하기 어려울 때 별칭의 원본 명령어와 실행 파일 위치를 동시에 탐색할 때 사용되다.
  • 개발 환경이나 패키지 매니저(npm, pip, homebrew 등)로 인해 여러 버전의 실행 바이너리가 설치되었을 때 우선순위를 점검하다.

2. 명령어 서식

Bash
 
where [option] [command_name]...

3. 명령어 옵션

  • 주요 옵션 소개 테이블
옵션 설명 사용가능 OS 및 쉘
-a PATH 내에 존재하는 검색 조건과 일치하는 모든 위치를 출력하다. [zsh]
-v 검색된 명령어의 유형(내장 명령어, 별칭, 함수, 파일)을 상세히 출력하다. [zsh]
-p 별칭(alias)이나 내장 명령어를 제외하고 오직 PATH 상의 실행 파일만 검색하다. [zsh]
-w 검색 결과에 대해 명령어 이름과 유형(command, alias, builtin, function)만을 표시하다. [zsh]
-f 셸 함수(Shell Function) 정의 내용은 제외하고 위치만 탐색하다. [zsh]
/R [DIR] 지정한 디렉터리를 기준 경로로 설정하여 하위 디렉터리를 재귀 탐색하다. [Windows CMD]
/Q 탐색 결과를 화면에 출력하지 않고 종료 코드(Exit Code)만 반환하다. [Windows CMD]
/T 검색된 각 파일의 크기 및 최종 수정 날짜, 시간 정보도 함께 표시하다. [Windows CMD]
  • 명령어 옵션 사용시 결과 예시
Bash
 
# zsh 환경에서 python 명령어의 모든 위치 및 별칭 탐색
where python
# python: aliased to python3
# /usr/bin/python
# /usr/local/bin/python

출력 결과 항목에 대한 설명:

  1. python: aliased to python3: python 명령어가 현재 python3으로 지정된 셸 별칭(alias)임을 보여주다.
  2. /usr/bin/python: 환경 변수 PATH에서 첫 번째로 발견된 일반 실행 파일 경로이다.
  3. /usr/local/bin/python: PATH 상에서 추가로 발견된 시스템 내부의 다른 python 실행 파일 위치이다.
Bash
 
# zsh 환경에서 상세 유형 정보 탐색 실행
where -v ls
# ls is an alias for ls --color=auto
# ls is /bin/ls

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

  • Bash 셸에서의 미지원: Bash(Bourne Again Shell)에서는 where 명령어가 기본 내장되어 있지 않다. Bash 환경에서 동일한 기능을 수행하려면 type -a [명령어] 또는 which -a [명령어]를 사용해야 하다.
  • which 명령어와의 차이점: which 명령어는 일반적으로 PATH 탐색 시 가장 먼저 검색되는 하나의 실행 파일 위치만 반환하지만, where 명령어는 별칭 및 내장 명령어 정보를 포함하여 발견된 모든 위치를 순차적으로 나열하다.
  • 실행 우선순위 확인: 출력되는 결과의 가장 첫 줄에 등장하는 항목이 현재 셸 세션에서 해당 명령어를 입력했을 때 실제 호출되는 대상이다.
  • Windows 환경과의 차이: Windows CMD의 where는 외부 바이너리 프로그램(/R, /T 등 별도의 플래그 제공)으로 동작하는 반면, Unix 계열 zsh/tcsh의 where는 셸 내장 명령어로 작동 방식 및 옵션 구성에 차이가 존재하다.

관련 명령어들

  • type: 명령어가 셸 내장 명령어, 파일, 별칭, 함수 중 무엇인지 분류하여 보여주는 셸 내장 명령어이다.
  • which: 환경 변수 PATH를 기반으로 명령어 실행 파일의 위치를 탐색하여 출력하다.
  • whereis: 명령어의 바이너리 파일, 소스 코드, 매뉴얼 페이지(man page) 위치를 함께 검색하다.
  • whence: zsh 환경에서 명령어가 어떻게 해석되는지 해석 방식을 출력하는 내장 명령어이다.

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

 

UNIX & Linux Command Reference

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

ioerror.tistory.com

 

 

 

반응형
Comments