DIR
定义
DIR是Windows命令提示符中的内建命令,功能是显示一个目录所含的文件和子目录清单。它接受驱动器、路径和文件名作为可选位置参数,并配合一组以斜杠开头的开关调整输出内容与格式[1]。在语义上,它与Unix类系统中的ls命令相当,都是查看目录内容的入口工具[2]。
该命令名称来自英文directory的缩写,在MS-DOS、PC-DOS、FreeDOS、OS/2、ReactOS等多种DOS系谱的操作系统中都存在同名或功能类似的内建命令[2]。除常规命令提示符外,Windows恢复环境(WinRE)中的命令行也提供DIR,但可用的参数集合与常规环境有所不同。
原理
DIR本身并不解析文件内容,而是向文件系统查询某个路径下目录项的信息,再把返回的属性数据格式化为文本输出。默认情况下,带有隐藏属性或系统属性的条目不会被列出,这一过滤规则由命令在读取目录项后按属性字段完成[3]。因此,/a 开关的作用就是干预这道过滤:仅列出具有指定属性的对象,或在不带属性字母时列出全部对象。属性字母包括 d 表示目录、h 表示隐藏、s 表示系统、r 表示只读、a 表示存档、l 表示重新分析点、i 表示非内容索引[3]。
排序与时间字段同样作用于输出阶段。/o 开关按名称、扩展名、大小、日期或目录优先等规则排序,前缀负号可以反转次序;若只写 /o 而不给具体规则,目录会按字母序排在前面,文件随后同样按字母序排列。/t 开关则决定显示和排序采用哪个时间戳,可选创建时间、上次访问时间与最后写入时间[3]。
输出格式由若干开关控制:/w 采用宽列表,每行最多排 5 个名称;/d 与之类似但按列排序;/b 输出不含标题与摘要的纯名称列表,且优先级高于 /w;/n 采用文件名靠右的长列表格式;/l 强制使用小写;/x 在长名称前插入为兼容旧程序生成的 8.3 短名称;/c 控制文件大小的千位分隔符显示;/4 以 4 位数字显示年份;/p 在每屏结束后暂停等待按键[3]。此外,/s 会向下递归遍历所有子目录,/q 显示文件所有权信息,/r 显示备用数据流[3]。
可以把整个执行过程理解为一条顺序管线:
flowchart LR
A[位置参数与通配符] --> B[读取目录项]
B --> C[按属性过滤 /a]
C --> D[按规则排序 /o /t]
D --> E[按格式渲染 /w /b /n]
E --> F[汇总数量与剩余空间]
其中的属性过滤与排序两步是否生效,取决于命令中是否出现相应开关;两者都缺省时,输出即为按名称排列、隐去隐藏与系统条目的常规列表。
发展历程
DIR的谱系可追溯到微型计算机上的DOS系统。它作为内建命令存在于MS-DOS、PC-DOS、DR-DOS、FreeDOS 等系统中,并在OS/2、Windows与ReactOS中延续下来;在AmigaDOS、RT-11、OpenVMS、CP/M 等更早或并行的操作系统中,也能找到功能相近的目录列举命令[2]。这种跨平台的普遍性,使“列出目录”成为早期命令行界面的标准能力之一。
进入Windows时代后,DIR被保留在命令提示符中,并随系统版本扩展出新的开关。微软官方文档在不同 Windows Server 版本的命令参考中给出的语法,已包含 /a、/o、/t、/s、/b、/l、/n、/x、/c、/4、/r 等完整选项集合,说明这套参数体系在较长时期保持稳定。同样的命令也被纳入Windows恢复环境,用于系统无法正常启动时的文件排查。
应用
最直接的用法是交互式查看磁盘结构。用户可以在命令提示符中执行 dir 查看当前目录,或指定 D:\JDK 之类的路径查看特定文件夹,并借助 /a 把隐藏文件一并列出、借助 /s 连子目录中的内容一起展开[4]。在路径输入框中直接调用命令提示符,即可让命令从该目录开始工作[1]。
在批处理脚本中,DIR常与其他命令组合使用。通过重定向操作符可以把列表写入文件,其中 > 覆盖原内容、>> 追加内容,而星号与问号通配符用来筛选目标文件[5]。由于 /b 只输出名称,/b /s 能给出当前路径下所有文件的完整路径,这类输出便于交给后续命令逐个处理[5]。系统维护场景下,WinRE 中的 DIR 可用于确认磁盘与目录是否可访问。
局限
DIR只负责列出目录项及其元数据,不读取也不解释文件内容,因此无法按内容检索或校验文件。它的输出是面向人或简单文本处理的列表,缺少结构化字段与可供程序解析的格式,排序和过滤能力也仅限于属性、名称、大小与时间戳等维度[3]。
默认输出会省略隐藏文件和系统文件,若不额外指定 /a,目录中实际存在的部分条目不会出现在结果里,这容易造成对目录内容的误判[3]。此外,通配符匹配依赖短文件名映射,可能列出预期之外的文件[3]。在恢复环境中,DIR 的参数集合与常规环境不一致,部分开关不可用。目录条目极多时,长列表会迅速占满屏幕,需要借助 /p 或 /b 才能有效阅读[3]。
参见
参考资料
- windows 技术篇 - cmd命令查看当前目录下的所有文件和文件夹以及所有子目录下的文件,dir命令的使用方法 [引用日期2026-10-29]
- DIR(Windows命令)_百度百科 [引用日期2026-10-29]
- dir | Microsoft Learn [引用日期2026-10-29]
- 黑客常用dos命令详解 [引用日期2026-10-29]
- yisu.com 上的网页 [引用日期2026-10-29]