当前位置: 首页 > news >正文

采用tree命令导出文件夹/文件的目录树(linux)

好的,在 Linux 系统上使用 tree 命令非常强大和常见。与 macOS 类似,大多数 Linux 发行版默认并不安装tree 命令,但都可以通过包管理器轻松安装。


1. 安装 Tree 命令

如果您的系统尝试运行 tree 后提示 command not found,请使用以下命令安装:

  • Debian / Ubuntu / Linux Mint (使用 apt)

    sudo apt update
    sudo apt install tree
  • CentOS / RHEL / Fedora (使用 yumdnf)

    # 对于 CentOS/RHEL (旧版本)
    sudo yum install tree
    # 对于 CentOS/RHEL 8+ 和 Fedora
    sudo dnf install tree
  • Arch Linux / Manjaro (使用 pacman)

    sudo pacman -S tree
  • openSUSE

    sudo zypper install tree

2. 基本用法与常用参数

安装成功后,就可以使用功能丰富的 tree 命令了。

基本命令
常用参数(区分大小写)
参数说明
-d只显示目录,不显示文件。
-L n限制显示的深度。例如 tree -L 2 只显示到当前目录下的第二层。
-a显示所有文件和目录,包括以 . 开头的隐藏文件。
-I pattern排除符合 pattern(模式)的文件或目录。支持通配符。例如 `tree -I "node_modules
-f显示文件的完整路径
-o filename将结果输出到文件。例如 tree -o output.txt
-h以易读的形式打印文件大小(如 1K, 234M, 2G)。
-p打印每个文件的权限(类似于 ls -l 的输出)。
-u显示文件所有者
-g显示文件所属组
-D显示文件的最后修改时间
-F在条目后附加类型标识符/ 表示目录,* 表示可执行文件,@ 表示符号链接。
--du显示目录及其子目录的磁盘使用情况(以块为单位)。
--charset charset指定输出的字符集,例如 ASCIIUTF-8(默认)。
--inodes显示每个文件的 inode 号
--device显示文件所在的设备号

组合使用示例
显示带权限、所有者、大小和时间的详细树状图,并只显示两层深度:

tree -L 2 -h -p -u -g -D

3. 导出目录树到文件

这是您最关心的功能,在 Linux 上主要通过输出重定向-o 参数实现。

方法一:使用重定向符号 (>>>)

这是最通用和常见的方法。

方法二:使用 -o 参数

tree 命令自带输出到文件的选项。

  • 将结果直接输出到 output.log:
    tree -o output.log
    你也可以和其他参数组合:
    tree -d -I "node_modules" -L 4 -o project_structure.txt

4. 输出为其他格式(HTML/XML)

tree 命令的一个强大功能是可以直接生成 HTML 或 XML 格式的目录树,非常适合集成到文档或网页中。

  • 导出为 HTML:

    tree -H . -o output.html

    -H . 选项会生成 HTML 代码,其中的链接路径会以当前目录 (.) 为根。你可以在浏览器中打开 output.html 文件,它通常是一个可点击的导航树。

  • 导出为 XML:

    tree -X -o output.xml

实用示例总结

假设你是一个开发者,想导出一个项目目录的结构,但不想包含 node_modules(很大)和 .git(版本控制)文件夹,并且只关心目录,可以这样做:

tree -d -I "node_modules|.git" -o project_tree.txt

这个命令会生成一个非常干净、只包含项目核心目录结构的文件 project_tree.txt

希望这份详细的 Linux tree 命令指南对您有帮助!

http://www.hskmm.com/?act=detail&tid=9323

相关文章:

  • The 2024 ICPC Asia East Continent Online Contest (I) 4/12 A/F/G/M
  • 深入解析 JVM 类加载机制:从字节码到运行时对象
  • 博弈论学习(第二天)
  • PHP 和 Elasticsearch:给你的应用加个强力搜索引擎
  • Windows 系统部署 Mosquitto MQTT broker 完整指南
  • 2025年- H146-Lc459. 重复的子字符串(字符串)--Java版 - 实践
  • 坚果云 坚果 jianguoyun 怎么收文件?
  • mssql创建字段依赖
  • AT_agc060_a [AGC060A] No Majority
  • Flutter本地通知系统:记账提醒的深度实现
  • AT_agc053_b [AGC053B] Taking the middle
  • 一款多功能Linux服务器Web管理面板
  • 2025.9.16 测试
  • 题解:P12558 [UOI 2024] Heroes and Monsters
  • 数据分析与产品、运营、市场之间如何有效对齐 - 详解
  • (附源码)基于Java的学生托管系统的设计与实现 - 实践
  • SVG动画优化全攻略:从设计到性能提升
  • 【GitHub每日速递 250919】MCP 生态新工具!Registry 服务器注册服务预览版,AI 开发者部署认证全流程揭秘
  • 多元积性函数
  • MX 练石 2026 NOIP #7
  • 用Qt打造永远运行的程序/守护进程/程序启动器/实时监测程序运行/后台运行
  • 传话游戏 题解
  • 智驾芯片三强对决:征程6P vs EyeQ Ultra vs Thor
  • 0132_访问者模式(Visitor)
  • 国内AI云市场:挤不进前三,生存将成问题!
  • P14053 [SDCPC 2019] Median 题解
  • lQueryDef查询Evaluate报该几何不包含M值问题。
  • 我的首个RCE漏洞发现之旅:Apache ActiveMQ远程代码执行实战
  • 北京市社保费用差额补缴计算工具
  • 使用自签名SSL证书有什么风险?