以树形结构展示目录层级,可附带文件名。
tree 用缩进和连线字符显示目录的层级关系,/f 同时列出文件,/a 用 ASCII 字符代替制表连线,便于重定向到旧控制台或纯文本工具。它适合快速看清项目结构、确认部署目录层级,或把目录快照存档。
边界:tree 只做展示,不能按名称、大小、属性或时间过滤,也没有深度限制;目录很大时输出会非常长。找特定文件名用 dir /s /b 或 where /r,找内容用 findstr,统计体积用资源管理器或 PowerShell。默认只显示目录,不加 /f 时看不到任何文件,这是最常见的误判。
Windows 10/11 与 Server 2016+ 的 tree 参数一致;tree.com 是外部程序,CMD 和 PowerShell 都会调用同一个可执行文件,/f、/a 可以直接用。重定向到文件时,输出按控制台代码页写入,跨机器打开可能乱码;需要稳定文本时加 /a,并在同一代码页下查看。
# 1. 只看目录层级,快速了解项目结构
C:\> tree C:\Projects
# 2. 连文件名一起显示,确认某个目录下有哪些文件
C:\> tree C:\Projects /F
# 3. 用 ASCII 连线输出到文件,便于跨工具查看
C:\> tree C:\Projects /F /A > C:\temp\tree.txt
# 4. 分页浏览整个盘的目录树,避免刷屏
C:\> tree C:\ /F | more
# 5. 把用户文档的目录快照存到临时目录
C:\> tree C:\Users\me\Documents /F > "%TEMP%\docs-tree.txt"
# 6. 在输出中筛出包含目标目录名的行(会丢失层级上下文)
C:\> tree C:\Projects /A | findstr /I "node_modules"
/f 只显示目录,很多人误以为文件丢了;确认文件存在要用 tree /f 或 dir。/a 只改变连线字符,不改变文件名编码;重定向文件在 UTF-8 编辑器里仍可能乱码,需按控制台代码页打开或转码。tree 不能排除 node_modules、.git 等目录;需要过滤时用 dir /s /b | findstr、where /r 或 PowerShell 的 Get-ChildItem。> 会覆盖已有文件,追加用 >>;路径含空格要给重定向目标加引号。tree 不显示属性、大小和链接类型,普通目录与 junction 看起来一样;先 dir /AL 识别链接,再决定是否纳入快照。合上页面,先回答,再展开对照。
tree C:\Projects 看不到任何文件?怎样显示文件?tree 能只显示三层目录或排除 node_modules 吗?tree 输出重定向到文件时,为什么要考虑代码页和 /a?/f 才显示文件。/a 用 ASCII 连线可减少字符兼容问题。
小程序版
微信扫码,随时查命令