首页/系统/Linux 运维命令速查/tree 树形展示目录结构
文件与目录76 条

tree 树形展示目录结构

以树状图递归展示目录层级,-L 限制深度、--du 显示目录体积,是写文档与盘点目录的好帮手。

Linux 运维命令速查系统更新于 2026-10-13

tree 是什么

tree 以树状图递归展示目录结构:每一层用缩进与连接线表示层级,目录后带斜杠。它能限制深度、只看目录、显示体积,也能排除指定的模式。写交接文档、评审项目结构、盘点服务器目录时,一张结构图比罗列文件名清楚得多。多数发行版需要单独安装这个包。

基本信息

用途树形展示目录结构,支持限深、过滤与体积统计
语法tree [选项] [目录]
所属软件包tree(多数发行版默认未安装)
常用选项-L 深度、-d 只看目录、-a 含隐藏文件、-I 排除模式、--du 显示占用、-f 显示完整路径、-J 输出 JSON

典型使用场景

  • 写文档:给项目或站点目录生成结构清单,直接贴进交接文档
  • 评审与巡检:快速确认目录层级是否与设计一致,有没有多余目录
  • 容量定位:用 --du 找出占空间最多的子树,再决定往哪儿深入
  • 配置盘点:只看 .conf 类文件,快速盘点某服务涉及的配置位置
  • 自动化消费:用 -J 输出 JSON,交给脚本解析目录结构

常用示例

常用示例
tree -L 2 /etc/nginx                     # 限两层,避免输出爆炸
tree -d -L 3 /data                       # 只看目录结构
tree -ah --du /srv/site | head -50       # 含隐藏文件与体积
tree -I 'node_modules|.git|cache' /data/app   # 排除指定模式
tree -P '*.conf' -L 3 /etc/app           # 只显示匹配的文件
tree -f -L 2 /data/app > structure.txt   # 带完整路径导出清单
tree -J -L 2 /data/app > structure.json  # 输出 JSON 供脚本消费

常用选项对照

选项作用使用建议
-L 深度限制递归层数线上目录务必带上,防止输出失控
-d只列目录看整体结构时最清爽
-a包含隐藏文件注意 .env、.git 等敏感内容会被展示出来
-I 模式排除匹配的条目多个模式用竖线分隔,记得加引号
--du显示目录累计占用定位大目录效率很高
-J / -X输出 JSON 或 XML需要脚本处理结构时使用
-P 模式只显示匹配的条目盘点某类配置或某类后缀文件
输出想给人看就用默认格式,想给程序读就用 -J 输出 JSON。把结构清单纳入文档时,建议连同生成命令一起记录,便于日后比对变化。
对线上目录不加深度限制执行 tree,可能产生几十万行输出并伴随大量磁盘读取。先估规模,或直接从浅层开始逐级展开。

易错点

  • 不加 -L 直接跑在大目录上:输出量与 IO 都会失控,线上环境先限深度
  • -a 展示隐藏文件后直接截图分享:.env、.git 配置里可能含凭据,分享前先过滤
  • 把 -I 的模式不加引号:竖线与星号会被 shell 提前解释,排除规则失效
  • 用 tree 统计体积当作权威数据:--du 与 df 口径不同,大目录统计还应以 du 与 df 为准

数据来源与参考

  • man 1 tree(tree 官方手册)

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌