dir (명령어)

DIR (명령어)

DIR은 주로 MS‑DOS, Windows 명령 프롬프트(또는 PowerShell) 및 OS/2와 같은 운영체제에서 사용되는 명령어로, 현재 작업 디렉터리 혹은 지정된 경로에 포함된 파일과 서브디렉터리 목록을 표시한다. 유닉스·리눅스 계열에서는 dirls 명령어와 동일한 기능을 수행하도록 별칭(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. 작동 원리

  1. 입력 해석 – 명령 해석기가 드라이브와 경로, 옵션을 파싱한다.
  2. 파일 시스템 호출 – 운영체제 커널의 파일 시스템 인터페이스(FindFirstFile/FindNextFile 등)로 디렉터리 엔트리를 조회한다.
  3. 필터링/정렬 – 옵션에 따라 속성 필터링(A), 정렬(O) 등을 적용한다.
  4. 출력 포맷 – 기본 포맷, 와이드(W), 베어(B) 등 선택된 포맷에 맞춰 문자열을 조합한다.
  5. 표시/파이프 – 콘솔에 직접 출력하거나 파이프(|) 혹은 리디렉션(>)을 통해 다른 프로세스로 전달한다.

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) 내에서 dirls와 동등하게 동작하도록 별칭 제공.

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. 참고 문서

  1. Microsoft Docs – DIR Command (https://learn.microsoft.com/windows-server/administration/windows-commands/dir)
  2. Windows Command Line Reference – Command-Line Syntax
  3. PowerShell Documentation – Get-ChildItem (alias: dir)
  4. 《Windows Internals》, Microsoft Press, 7th Edition – 파일 시스템 API 섹션

DIR은 컴퓨터 시스템 관리와 스크립트 자동화에서 가장 기본적이면서도 빈번히 활용되는 명령어 중 하나이며, 옵션을 조합함으로써 다양한 파일·디렉터리 정보를 효율적으로 탐색·수집할 수 있다.

둘러보기

더 찾아볼 만한 주제