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` 显示符号链接指向

注意事项

  1. 路径过长:若目录层级过深,输出可能混乱,建议用 -L 限制深度。

  2. 性能问题:遍历大型目录(如 /)时可能耗时,按需使用过滤选项。

  3. 颜色支持:终端需支持彩色输出,否则使用 -C 可能无效。


通过灵活组合选项,tree 可快速生成清晰的目录结构视图。更多细节可通过 man tree 查看手册。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐