tree 是干什么的
tree 用缩进的形式把目录的层级结构打印出来,是“看一眼这套目录长什么样”的最快方式。加 /F 会连文件名一起显示,加 /A 用 ASCII 字符代替制表符与连字符,兼容纯文本编辑器与部分老系统。它和 dir /s 的区别在于结构表达:tree 展示的是形状,dir /s 展示的是清单。
基本信息
| 适用平台 | Windows CMD(XP 起内置);Unix 系也有同名命令但参数不同 |
|---|---|
| 语法 | tree [路径] [/F] [/A] |
| 参数含义 | /F 显示文件名、/A 使用 ASCII 字符 |
| 输出建议 | 结果重定向到文件再分享,避免屏幕刷屏 |
典型使用场景
- 交付前核对目录结构:确认程序包或交付件层级是否符合约定
- 写工单与文档:把结构直接贴进说明,比逐条列目录清晰
- 排查误放文件:层级一眼看出文件是不是放在了错误的子目录
- 接手项目:快速理解现有目录组织方式
- 容量粗略定位:配合 /F 观察哪个子目录文件数量异常多
常用示例
常用示例
:: 只看目录结构
tree D:\Project
:: 连文件名一起看,并输出到文件便于分享
tree D:\Project /F /A > D:\tree.txt
:: 结构太长时分屏查看
tree D:\Project /F | more
:: 想看统计数量(tree 不做统计,用 dir 更合适)
dir D:\Project /s /a-d | find /c ":"
:: PowerShell 侧更灵活的替代写法
Get-ChildItem D:\Project -Recurse -Directory | Select-Object FullName同类手段对比
| 命令 | 输出重点 | 适用场景 |
|---|---|---|
| tree | 目录层级形状 | 理解结构、写文档 |
| tree /F | 层级 + 文件名 | 核对交付内容 |
| tree /A | ASCII 分支符号 | 兼容纯文本环境 |
| dir /s /b | 完整路径清单 | 交给程序处理 |
| Get-ChildItem -Recurse | 对象化列表,可筛选 | 自动化与统计 |
tree 没有“限制深度”的参数,要控制展开层级只能在 PowerShell 里自行实现(例如按目录层级过滤 FullName 中的分隔符数量)。目录特别大时先指定子目录再展开。
tree /F 会把所有文件名写进输出文件,其中可能包含客户名称、项目代号等敏感信息。对外发送前先过一遍内容,别把内部目录结构直接交给外部方。
几十万个文件的目录上跑 tree /F 会非常慢,原因是要逐个目录枚举条目。遇到超大目录,先用 Get-ChildItem 限定范围或按子目录分批输出。