LainyZine: 프로그래머 가이드 🐣

Where.exe 사용법: 윈도우의 which 명령어

리눅스(Linux) 셸에서는 특정 실행 파일의 경로를 확인하고 싶을 때 which 명령어를 사용합니다. 예를 들어 ping 명령어를 실행했을 때, 실행되는 명령어의 전체 경로를 다음과 같이 확인할 수 있습니다.

$ which ping
/bin/ping

윈도우에서도 리눅스 명령어 이름을 빌려온 경우가 많습니다만, which 명령어는 존재하지 않습니다. 대신 실행 파일 전체 경로를 확인하는 용도로 where.exe를 사용할 수 있습니다. 이 글에서는 윈도우의 where.exe 사용법을 소개합니다.

where.exe로 실행 파일 경로 찾기

where.exe 첫 번째 인자로 실행 파일 이름을 지정하면, Path 환경변수를 탐색해 해당 실행 파일의 위치를 알려줍니다. 예를 들어 ping 명령어의 위치를 확인해보겠습니다.

$ where.exe ping
C:\Windows\System32\PING.EXE

C:\Windows\System32 아래의 PING.EXE 파일이 실행되는 것을 확인할 수 있습니다.

다른 예로 Chocolatey로 설치한 ffmpeg 실행파일의 위치도 확인해보겠습니다.

$ where.exe ffmpeg
C:\ProgramData\chocolatey\bin\ffmpeg.exe

C:\ProgramData\chocolatey\bin\ 아래에 실행 파일이 있는 것을 확인할 수 있습니다.

탐색 대상이 되는 경로는 $Env:Path를 출력해서 확인할 수 있습니다. 아래 출력 결과에서 C:\WINDOWS\system32C:\ProgramData\chocolatey\bin\ 디렉터리를 확인할 수 있습니다.

$ $Env:Path
C:\WINDOWS\system32;C:\ProgramData\chocolatey\bin\;...

where.exe로 파일 검색하는 방법

where.exe는 실행 파일의 경로를 찾을 뿐만 아니라 특정 위치를 지정해서 파일을 검색할 수도 있습니다. 사용법은 다음과 같습니다.

where.exe /R <검색대상경로> <검색패턴>

예를 들어 C:\Windows\System32에서 Auth*.dll 패턴을 검색하고 싶다면 다음과 같이 실행합니다.

$ where.exe /R 'C:\Windows\System32' 'Auth*.dll'
C:\Windows\System32\AuthBroker.dll
C:\Windows\System32\AuthBrokerUI.dll
C:\Windows\System32\authentication.dll
C:\Windows\System32\AuthExt.dll
C:\Windows\System32\authfwcfg.dll

검색 패턴에서는 *? 와일드 카드를 사용할 수 있습니다. *는 0글자 이상에 매치되고, ?는 정확히 한 글자에 매치됩니다.

where.exe 도움말

여기까지 where.exe의 기본적인 사용법에 대해서 알아보았습니다. where.exe 명령어에 /? 옵션을 붙여서 실행하면 더 자세한 사용법을 확인할 수 있습니다.

$ where.exe /?
WHERE [/R dir] [/Q] [/F] [/T] pattern...

설명:
    검색 패턴에 해당되는 파일의 위치를 표시합니다.
    기본값으로 현재 디렉터리 및 PATH 환경 변수에 지정된 경로를
    검색합니다.

매개 변수 목록:
    /R       지정된 디렉터리부터 시작하여 제공된 패턴과 일치하는
             파일을 재귀적으로 검색하고 표시합니다.

    /Q       일치하는 파일 목록을 표시하지 않고 종료 코드만
             반환합니다(자동 모드).

    /F       일치하는 파일 이름을 큰따옴표로 묶어 표시합니다.

    /T       일치하는 모든 파일의 파일 크기, 마지막 수정한 날짜
             및 시간을 표시합니다.

    pattern  파일에서 검색할 검색 패턴을 지정합니다.
             패턴에 * 및 ? 와일드카드를 사용할 수 있습니다.
             "$env:pattern" 및 "path:pattern" 포맷도 지정할 수 있습니다.
             "env"는 환경 변수이며 "env" 환경 변수에 지정된 경로에서
             검색을 수행합니다.
             /R과 더불어 이 포맷을 사용할 수 없습니다.
             패턴에 PATHEXT 변수의 확장을 추가하여 검색할 수도
             있습니다.

     /?      이 도움말 메시지를 표시합니다.

  참고: 검색이 성공하면 오류 수준 0이 반환되며, 해당 항목을
        찾을 수 없으면 1이 반환되고 검색이 실패하거나 오류가
        발생하면 2가 반환됩니다.

예:
    WHERE /?
    WHERE myfilename1 myfile????.*
    WHERE $windir:*.*
    WHERE /R c:\windows *.exe *.dll *.bat
    WHERE /Q ??.???
    WHERE "c:\windows;c:\windows\system32:*.dll"
    WHERE /F /T *.dll

추천 문서

LainyZine은 쿠팡 파트너스 활동에 따른 수수료를 제공받습니다.