tree 非 linux 默认命令,需手动安装;常用组合为 tree、tree -l、tree -a;-l 控制最大显示层数,-a 显示隐藏文件,-o 可导出结构至文件。

tree 不是 Linux 默认命令,得先装;装完后最常用的是 tree、tree -L、tree -a 这三个组合,其他参数多数场景用不上。
tree 命令不存在?先确认是否已安装
绝大多数最小化安装的 Linux 发行版(如 CentOS Stream 9、Rocky Linux 9.4、Ubuntu Server)默认不带 tree。直接运行会报错:
bash: tree: command not found
不同系统安装方式不同,别硬记包名:
- Debian/Ubuntu:
sudo apt install tree - RHEL/CentOS/Rocky/AlmaLinux:
sudo dnf install tree(新版)或sudo yum install tree(旧版) - Arch Linux:
sudo pacman -S tree
装完运行 tree --version 确认输出版本号,才算真正就绪。
只看目录层级?用 tree -L 控制深度
tree 默认递归列出所有子目录,遇到嵌套深的项目(比如 node_modules 或 target)会卡住或刷屏。用 -L 限制层数是最实用的收敛手段:
-
tree -L 2:只显示当前目录 + 下一级子目录(不含子目录里的内容) -
tree -L 3 /etc:查看/etc目录下三层以内的结构,避免被/etc/ssl/certs之类海量文件拖慢 -
-L 1等价于只看“第一层目录骨架”,适合快速确认有没有某个子目录存在
注意:-L 是“最多显示 N 层”,不是“精确显示 N 层”;如果某子目录本身是空的,它仍会出现在输出里。
隐藏文件不显示?加 -a 才能看见点开头的文件
tree 默认行为和 ls 一样,跳过以 . 开头的隐藏项(如 .git、.env、.ssh)。想完整呈现项目结构,必须显式加 -a:
-
tree -a:显示当前目录全部内容,包括.git、.editorconfig等 -
tree -a -L 2:常用组合,既控制深度又不漏配置文件 - 别混淆
-a和-d:-d是“只列目录”,会彻底过滤掉所有普通文件(包括.gitignore这种重要文件)
如果你在调试 CI 脚本或部署流程,漏掉 .github/workflows 这类路径,大概率是因为没加 -a。
导出结构图到文件?用 -o 避免终端截断
终端窗口宽度有限,长路径或深层嵌套时,tree 输出会被自动折行甚至截断。要保留完整结构用于文档或协作,必须导出为文件:
-
tree -a -L 3 > structure.txt:重定向最简单,但不支持颜色、特殊字符对齐 -
tree -a -L 3 -o structure.txt:用-o参数更规范,且能配合-C(着色)或-F(加类型标记)生成可读性更强的文本 - 导出 HTML:
tree -a -H . -T "Project Structure" -o index.html,适合嵌入 Wiki 或静态页(注意-H后跟的是 base URL,不是本地路径)
导出时容易忽略一点:如果目标文件已存在,-o 会直接覆盖,不会提示;批量生成时建议加时间戳,比如 tree -o structure_$(date +%Y%m%d).txt。










