subst는 로컬 경로를 가상 드라이브 문자에 연결하는 명령이다.
이 장을 읽기 전에
선행 챕터: 이 장은 50장: vol에서 볼륨 정보를 조회하는 법을 다룬 뒤 이어진다. 11장(pushd, popd)에서 명령 확장이 켜져 있을 때 pushd가 네트워크 UNC 경로를 임시 드라이브 문자로 매핑한다고 다뤘는데, subst는 그 개념을 로컬 경로에 대해 더 직접적으로 제공하는 명령이다.
이 장의 깊이: 입문–중급.
사용법
| |
옵션
| 옵션 | 설명 |
|---|---|
<드라이브1>: | 연결할 가상 드라이브 문자 |
[<드라이브2>:]<경로> | 연결 대상이 될 실제 드라이브와 경로 |
/d | 지정한 가상 드라이브 연결 해제 |
인수 없이 실행하면 현재 활성화된 모든 가상 드라이브 연결 목록을 표시한다.
예시
| |
주의사항·함정
일부 명령은 subst 드라이브에서 쓸 수 없다: Microsoft Learn은 subst로 만든 드라이브에서 동작하지 않는 명령 목록을 명시한다.
“The following commands don’t work and must not be used on drives specified in the subst command: chkdsk, diskcomp, diskcopy, format, label, recover.” — Microsoft Learn, “subst”
42장(chkdsk), 45장(format), 49장(label), 52장(recover)에서 배운 명령들이 여기 포함된다. subst 드라이브는 물리 드라이브를 흉내 낸 가상 매핑일 뿐이라, 물리 디스크 구조를 직접 다루는 이 명령들은 애초에 대상을 찾지 못한다.
드라이브 문자는 lastdrive 범위 안에 있어야 한다: 지정한 가상 드라이브 문자가 시스템에 설정된 사용 가능 드라이브 문자 범위를 벗어나면 오류가 난다.
“The
<drive1>parameter must be within the range that is specified by the lastdrive command. If not, subst displays the following error message: Invalid parameter - drive1:” — Microsoft Learn, “subst”
세션 한정이며 재부팅하면 사라진다: subst로 만든 연결은 현재 로그온 세션에만 유지되고, 재부팅하면 사라진다. 매번 같은 매핑이 필요하다면 로그인 스크립트나 시작 프로그램에서 subst를 실행하도록 등록해야 한다.
PowerShell의 느슨한 대응은 New-PSDrive다: New-PSDrive -Name Z -PSProvider FileSystem -Root <경로>로 비슷한 매핑을 만들 수 있지만, 이렇게 만든 드라이브는 해당 PowerShell 세션에서만 보이는 논리적 드라이브일 뿐, subst가 만드는 것과 같은 실제 Win32 드라이브 문자가 아니다 — 탐색기나 다른 프로그램에서는 보이지 않는다. 시스템 전역에서 다른 애플리케이션도 인식하는 드라이브 문자가 필요하다면 여전히 subst를 써야 한다.
흔한 오개념
“subst는 pushd의 네트워크 드라이브 매핑과 완전히 같은 기능이다”는 오해가 있다. 11장에서 다룬 pushd의 UNC 경로 자동 매핑은 popd로 스택에서 빠져나올 때 자동으로 해제되는 임시적 부수 기능인 반면, subst는 로컬 경로를 대상으로 사용자가 명시적으로 만들고 명시적으로(/d) 해제해야 하는 독립적인 명령이다. 대상도 다르다 — pushd는 주로 네트워크 UNC 경로를 다루고, subst는 로컬 디스크의 긴 경로를 짧게 줄이는 데 주로 쓰인다.
다음 장에서는
다음은 52장 — 손상된 디스크에서 읽을 수 있는 데이터만 복구하는 recover 명령을 다룬다.
평가 기준
- subst로 로컬 경로를 가상 드라이브 문자에 연결하고
/d로 해제할 수 있다. - subst 드라이브에서 chkdsk·format·label 등이 동작하지 않는 이유를 설명할 수 있다.
- subst 연결이 세션 한정이며 재부팅하면 사라진다는 것을 안다.
- subst와 pushd의 UNC 자동 매핑이 서로 다른 용도의 기능이라는 것을 설명할 수 있다.
![Featured image of post [CMD] 51. subst - 경로를 가상 드라이브 문자에 연결](/post/cmd/subst-command-virtual-drive-letter-windows-cmd/wordcloud_hu_4b01723d5ba8477a.webp)
![[CMD] 49. label - 볼륨 레이블 만들기와 삭제](/post/cmd/label-command-volume-label-windows-cmd/wordcloud_hu_e365a4078c706fa.webp)
![[CMD] 50. vol - 볼륨 레이블과 일련번호 표시](/post/cmd/vol-command-display-volume-label-windows-cmd/wordcloud_hu_2a2064155b54fefb.webp)
![[CMD] 51. subst - 경로를 가상 드라이브 문자에 연결](/post/cmd/subst-command-virtual-drive-letter-windows-cmd/wordcloud_hu_5923589bcc96aa7.webp)
![[CMD] 52. recover - 손상된 디스크에서 데이터 복구](/post/cmd/recover-command-recover-damaged-disk-windows-cmd/wordcloud_hu_dbdab3050f8693ec.webp)
![[CMD] 53. verify - 디스크 쓰기 검증 설정](/post/cmd/verify-command-verify-file-writes-windows-cmd/wordcloud_hu_bc3286fd91290565.webp)
![[CMD] 37. pause - 배치 실행 일시 정지](/post/cmd/pause-command-suspend-batch-windows-cmd/wordcloud_hu_c9e1ff4cc8c91309.webp)
![[CMD] 43. chkntfs - 부팅 시 자동 디스크 검사 설정](/post/cmd/chkntfs-command-disk-check-boot-windows-cmd/wordcloud_hu_5d7ad4b166e4171f.webp)
![[CMD] 47. compact - NTFS 파일·디렉터리 압축](/post/cmd/compact-command-ntfs-compression-windows-cmd/wordcloud_hu_41380504f64fa73a.webp)
![[CMD] 48. fsutil - 파일 시스템 저수준 조회와 구성](/post/cmd/fsutil-command-file-system-utility-windows-cmd/wordcloud_hu_504cb8adde78f23a.webp)