linux 命令 tree

server/2025/3/17 2:19:37/

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 查看手册。


http://www.ppmy.cn/server/175584.html

相关文章

k8s系统学习路径

学习 Kubernetes(K8s)需要循序渐进,结合理论知识和实践操作。以下是学习 Kubernetes 的推荐步骤: 1. 先决条件 • 掌握容器基础:先学习 Docker,理解容器化概念(镜像、容器、仓库)、…

TCP/IP原理详细解析

前言 TCP/IP是一种面向连接,可靠的传输,传输数据大小无限制的。通常情况下,系统与系统之间的http连接需要三次握手和四次挥手,这个执行过程会产生等待时间。这方面在日常开发时需要注意一下。 TCP/IP 是互联网的核心协议族&…

【spring-boot-starter-data-neo4j】创建结点和查找结点操作

配置连接neo4j # application.properties spring.neo4j.uribolt://localhost:7687 spring.neo4j.authentication.usernameneo4j spring.neo4j.authentication.password你的密码定义实体类 package com.anmory.platform.GraphService.Dao;import org.springframework.data.neo…

rust 的Clone

Clone 是 Rust 编程语言中一个核心特质(trait), 定义了类型如何安全、明确地创建其值的深拷贝(deep copy)。 下面用实例来演示Clone的作用,先看一下如下的代码,注意此代码编译不过。 #[derive…

C#类型转换大总结

在 C# 中,类型转换是将数据从一种类型转换为另一种类型的过程,常见的转换方式包括隐式转换、显式转换、方法转换(如 Convert 类或 Parse/TryParse)以及自定义转换操作符。以下是详细的分类和示例: 隐式转换(Implicit Conversion) 无需显式声明,编译器自动完成,通常发生…

Python数据分析之数据可视化

Python 数据分析重点知识点 本系列不同其他的知识点讲解,力求通过例子让新同学学习用法,帮助老同学快速回忆知识点 可视化系列: Python基础数据分析工具数据处理与分析数据可视化机器学习基础 四、数据可视化 图表类型与选择 根据数据特…

用Deepseek写一个五子棋微信小程序

在当今快节奏的生活中,休闲小游戏成为了许多人放松心情的好选择。五子棋作为一款经典的策略游戏,不仅规则简单,还能锻炼思维。最近,我借助 DeepSeek 的帮助,开发了一款五子棋微信小程序。在这篇文章中,我将…

【文献阅读】DeepRAG:大语言模型的检索增强推理新范式

DeepRAG:《Thinking to Retrieval Step by Step for Large Language Models》。这是一篇关于如何让大语言模型(LLMs)更聪明地进行检索增强推理(Retrieval-Augmented Generation, RAG)的研究。 标题期刊年份关键词Deep…