DIR (명령어)
DIR은 주로 MS‑DOS, Windows 명령 프롬프트(또는 PowerShell) 및 OS/2와 같은 운영체제에서 사용되는 명령어로, 현재 작업 디렉터리 혹은 지정된 경로에 포함된 파일과 서브디렉터리 목록을 표시한다. 유닉스·리눅스 계열에서는 dir이 ls 명령어와 동일한 기능을 수행하도록 별칭(alias)이나 내장 명령어로 제공되기도 한다.
1. 개요
| 구분 | 내용 |
|---|---|
| 명령어명 | DIR |
| 유형 | 파일·디렉터리 목록 출력 명령 |
| 지원 OS | MS‑DOS, Windows (CMD, PowerShell), OS/2, 일부 유닉스·리눅스 배포판(별칭) |
| 기본 동작 | 현재 디렉터리(또는 지정 경로)의 파일·폴더 정보를 화면에 출력 |
| 표준 출력 | 파일명, 확장자, 파일 크기, 최종 수정 날짜·시간, 속성(읽기 전용, 숨김, 시스템 등) |
2. 문법
DIR [드라이브:][경로] [옵션]
- 드라이브:
C:등, 출력할 드라이브를 지정한다. 지정하지 않으면 현재 드라이브가 사용된다. - 경로: 절대 경로나 상대 경로를 입력한다.
.(현재 디렉터리),..(상위 디렉터리) 등을 사용할 수 있다. - 옵션: 슬래시(
/) 뒤에 하나 이상의 스위치를 붙인다. 여러 옵션은 공백으로 구분한다.
3. 주요 옵션
| 옵션 | 의미 | 비고 |
|---|---|---|
/A |
파일 속성별로 필터링. <속성>을 지정하면 해당 속성만 표시한다. 예: /A:H(숨김 파일) |
|
/B |
베어 포맷(bare format) 출력. 경로와 파일명만 표시하고, 헤더·요약 정보를 생략한다. | |
/C |
파일 크기 구분자(쉼표)를 표시한다. (기본값) | |
/D |
와이드 포맷으로 출력. 여러 파일을 한 줄에 5~6개씩 배치한다. | |
/L |
파일명을 소문자로 표시한다. | |
/N |
파일명을 새 형식(권한·소유자 정보 포함)으로 표시한다. | |
/O |
정렬 기준 지정. <정렬>에 N(이름), S(크기), E(확장자), D(날짜), G(그룹) 등을 조합한다. |
|
/P |
화면이 가득 차면 일시 정지(pause)한다. 페이지 단위 출력. | |
/Q |
파일 소유자(소유자 SID)를 표시한다. | |
/S |
지정 경로 이하 모든 하위 디렉터리의 파일을 재귀적으로 나열한다. | |
/T |
날짜·시간 표시 방식을 선택한다. C(생성), A(마지막 접근), W(마지막 쓰기) 중 하나. |
|
/W |
와이드 목록 형식(컬럼)으로 출력한다. | |
/X |
8.3(짧은) 파일명을 표시한다. | |
/4 |
연도 4자리(YYYY) 표시. 기본은 2자리(YY). |
예시
DIR C:\Windows /S /B > C:\filelist.txt‑ C:\Windows 하위 모든 파일·폴더를 절대 경로 형태로(
B옵션)filelist.txt에 저장한다.
4. 작동 원리
- 입력 해석 – 명령 해석기가 드라이브와 경로, 옵션을 파싱한다.
- 파일 시스템 호출 – 운영체제 커널의 파일 시스템 인터페이스(
FindFirstFile/FindNextFile등)로 디렉터리 엔트리를 조회한다. - 필터링/정렬 – 옵션에 따라 속성 필터링(
A), 정렬(O) 등을 적용한다. - 출력 포맷 – 기본 포맷, 와이드(
W), 베어(B) 등 선택된 포맷에 맞춰 문자열을 조합한다. - 표시/파이프 – 콘솔에 직접 출력하거나 파이프(
|) 혹은 리디렉션(>)을 통해 다른 프로세스로 전달한다.
5. 역사
| 연도 | 사건 |
|---|---|
| 1981 | MS‑DOS 1.0에 DIR 명령어가 최초 포함. 초기에는 파일 명·크기·날짜만 출력. |
| 1985 | MS‑DOS 2.0에서 하위 디렉터리(\S 옵션)와 파일 속성(\A) 지원 추가. |
| 1995 | Windows 95에서 명령 프롬프트(CMD.EXE)와 PowerShell에서 DIR을 호환성 명령어로 유지. |
| 2000 | Windows 2000/XP에서 /Q(소유자)·/R(대체 스트림) 등 고급 옵션이 도입. |
| 2009 | Windows 7 이후 PowerShell에서도 Get-ChildItem alias 로 dir을 제공, 파이프라인 친화적. |
| 2020 | WSL(Windows Subsystem for Linux) 내에서 dir을 ls와 동등하게 동작하도록 별칭 제공. |
6. 사용 시 유의 사항
- 대소문자 구분 – 전통적인
cmd.exe에서는 대소문자를 구분하지 않지만, PowerShell에서는 별칭(dir)이Get-ChildItem과 연결되어 있어 파이프라인 및 객체 기반 작업이 가능하다. - 보안 –
/A옵션으로 숨김·시스템 파일을 표시하면 보안 민감 정보가 노출될 수 있다. 권한이 제한된 계정에서는 파일/디렉터리 목록 접근 자체가 제한될 수 있다. - 대용량 디렉터리 –
/S옵션을 사용할 경우, 수천~수만 개 파일이 있는 디렉터리에서는 실행 속도가 느려지고 메모리 사용량이 급증한다. 필요 시/P와 결합해 페이지 단위로 확인한다.
7. 관련 명령어
| 명령어 | 설명 |
|---|---|
COPY |
파일을 복사한다. |
XCOPY |
디렉터리 구조를 포함한 파일 복사 (고급 옵션). |
DEL |
파일을 삭제한다. |
MKDIR / MD |
새 디렉터리를 만든다. |
RMDIR / RD |
빈 디렉터리를 삭제한다. |
ATTRIB |
파일·디렉터리 속성을 변경한다. |
TREE |
디렉터리 구조를 트리 형태로 시각화한다. |
GET-CHILDITEM (PowerShell) |
dir과 동등하게 객체 기반 파일/디렉터리 정보를 반환한다. |
ls (Unix/Linux) |
유닉스 계열에서 dir과 동일한 역할을 수행한다. |
8. 예제 스크립트
:: 현재 폴더에 .txt 파일만 리스트하고, 파일 크기와 날짜를 표시
DIR *.txt /A:-D /O:-S /T:W
:: 하위 폴더까지 전체 파일을 베어 포맷으로 파일에 저장
DIR C:\Data /S /B > C:\Data\FileList.txt
:: PowerShell에서 alias를 이용한 고급 사용
dir -Recurse -Force | Where-Object {$_.Length -gt 10MB}
9. 참고 문서
- Microsoft Docs – DIR Command (https://learn.microsoft.com/windows-server/administration/windows-commands/dir)
- Windows Command Line Reference – Command-Line Syntax
- PowerShell Documentation – Get-ChildItem (alias:
dir) - 《Windows Internals》, Microsoft Press, 7th Edition – 파일 시스템 API 섹션
DIR은 컴퓨터 시스템 관리와 스크립트 자동화에서 가장 기본적이면서도 빈번히 활용되는 명령어 중 하나이며, 옵션을 조합함으로써 다양한 파일·디렉터리 정보를 효율적으로 탐색·수집할 수 있다.