Linux 的 tree
命令以树状结构显示目录及其子目录内容,非常适合直观查看文件层级。以下是其核心用法和常见示例:
安装 tree
# CentOS/RHEL sudo yum install tree
基本语法
tree [选项] [目录路径]
常用选项
1. 控制显示层级
-L [数字]
:限制目录树显示的深度。
tree -L 2 # 显示当前目录及其下 2 层子目录
2. 过滤文件/目录
-
-I "模式"
:忽略匹配通配符的文件或目录(支持正则表达式)。 -
--prune
:隐藏空目录。tree -I "node_modules|.git" # 忽略 node_modules 和 .git 目录 tree --prune # 不显示空目录
3. 显示文件详情
-
-a
:显示隐藏文件(以.
开头的文件)。 -
-d
:仅显示目录。 -
-p
:显示文件权限。 -
-u
:显示文件所有者。 -
-g
:显示文件所属组。 -
-s
:显示文件大小(字节)。 -
-h
:以人类可读格式显示文件大小(如 KB/MB/GB)。tree -a -h # 显示所有文件(含隐藏文件)及大小 tree -pug # 显示权限、所有者和组信息
4. 输出到文件
-
-o [文件名]
:将结果保存到文件。 -
-H
:生成 HTML 格式输出(需结合-o
)。tree -H -o dir_tree.html # 生成 HTML 格式的目录树
5. 颜色控制
-
-C
:启用彩色输出(默认行为)。 -
--noreport
:隐藏末尾的统计信息。tree -C --noreport # 彩色显示且不显示统计信息
常见示例
1. 显示当前目录树
tree
2. 显示指定目录的树状结构
tree /path/to/dir
3. 显示目录结构并忽略特定文件
tree -I "*.log|*.tmp" # 忽略 .log 和 .tmp 文件
4. 仅显示目录(不显示文件)
tree -d
5. 显示文件权限和所有者
tree -pug
6. 限制层级并保存到文件
tree -d -L 2 -o tree.txt hadoop-3.1.2/ # 保存 2 层目录结构到 tree.txt
7. 结合 grep
过滤内容
tree | grep "keyword" # 在目录树中搜索关键词
高级用法
1. 生成 JSON 格式输出
需安装第三方工具(如 tree-json
)或编写脚本转换。
2. 过滤大小
结合 find
命令筛选文件后生成树:
find . -size +1M -exec tree {} + # 显示大于 1MB 文件的目录树
3. 显示符号链接指向
tree -l -F # `-F` 在目录后加 `/`,`-l` 显示符号链接指向
注意事项
-
路径过长:若目录层级过深,输出可能混乱,建议用
-L
限制深度。 -
性能问题:遍历大型目录(如
/
)时可能耗时,按需使用过滤选项。 -
颜色支持:终端需支持彩色输出,否则使用
-C
可能无效。
通过灵活组合选项,tree
可快速生成清晰的目录结构视图。更多细节可通过 man tree
查看手册。