使用tree命令导出文件夹/文件的目录树( Windows 和 macOS)

你可以在终端(命令提示符)中使用 tree 命令来清晰直观地查看和导出文件夹的目录结构。下面我会详细告诉你如何在 Windows 和 macOS 上使用它。

🖥️ tree 命令基本用法

tree 命令的核心作用是以树状图的形式展示指定路径下的目录和文件结构。你可以控制其输出的详细程度(是否包含文件)、显示深度以及输出格式。

在 Windows 上:

Windows 系统自带的 tree 命令常见参数如下:

  • [drive:][path]: 指定要显示的驱动器和目录。如果省略,默认为当前目录
  • /F: 显示所有目录中的文件名。如果不加此参数,则默认只显示文件夹。
  • /A: 使用 ASCII 字符而不是扩展字符来绘制树形图,这可能在兼容性不好的环境中更有用。
在 macOS 上:

macOS 默认没有 tree 命令,需要先通过 Homebrew 安装:

bash 复制代码
brew install tree

macOS 的 tree 命令参数更丰富一些:

  • -d: 只显示目录,不显示文件。
  • -L n: 指定遍历的层级深度 (n 代表数字)。例如,tree -L 2 只显示当前目录下两层的内容。
  • -I pattern: 排除 不想显示的文件或文件夹模式(支持正则表达式)。例如,tree -I "node_modules|.git" 可以过滤掉 node_modules 文件夹和 .git 文件夹。

💡 导出目录树到文件

tree 命令的输出结果可以直接保存到文本文件中,方便你存档或进一步处理。这是通过命令行的重定向功能>>>)实现的。

基本语法

bash 复制代码
tree [参数] [目录路径] > 输出文件路径
  • 如果输出文件不存在,系统会自动创建它。
  • 如果使用 >,会覆盖 已存在的文件;如果使用 >>,则会将结果追加到现有文件的末尾。

常用导出示例

  1. 导出当前目录的完整结构(包含文件和文件夹)

    bash 复制代码
    tree /f > tree.txt
  2. 导出指定目录的结构(只包含文件夹,使用 ASCII 字符)

    bash 复制代码
    tree /a D:\Projects > D:\project_tree.txt
  3. 在 macOS 上导出当前目录的结构,但只显示两层深度,并排除 DS_Store 文件

    bash 复制代码
    tree -L 2 -I ".DS_Store" > structure.txt

📖 命令示例表

下面是一些常见情况的命令示例汇总,希望能帮你快速上手:

如果你想... 可以尝试的命令(Windows) 可以尝试的命令(macOS) 说明
快速查看当前目录的文件夹结构 tree tree -d Windows 默认只显示文件夹;macOS 需加 -d 参数
详细查看当前目录的文件和文件夹 tree /f tree macOS 安装后默认就会显示文件
当前目录 的完整结构导出list.txt tree /f > list.txt tree > list.txt 文件会保存在当前目录下
指定目录 (如 D:\Work)的结构导出到指定位置 tree /f D:\Work > C:\tree_export.txt tree ~/Documents > /Users/Name/doc_tree.txt 注意指定完整的路径
只导出文件夹(不包含文件) tree > folders_only.txt tree -d > folders_only.txt
控制显示和导出的层级(例如最多2层) 需借助其他命令 tree -L 2 > output.txt Windows 的 tree 命令原生不支持 /L 参数
排除特定文件夹/文件 (如 node_modules 需借助其他命令 tree -I "node_modules" > output.txt Windows 的 tree 命令原生不支持排除功能

⚠️ 注意事项

  • macOS 安装 :记得 macOS 上需要先通过 brew install tree 来安装。
  • Windows 参数差异 :Windows 的 tree 命令参数(如 /F, /A)和 macOS/Linux 版本(如 -d, -L, -I)有所不同,注意不要混淆。
  • 输出格式:直接导出的文件是纯文本格式(.txt)。如果需要更高级的格式(如 CSV、Markdown),通常需要借助脚本或其他工具进行二次处理。
  • 权限问题 :如果要列出系统文件或受保护目录的内容,在 Windows 上可能需要以管理员身份运行命令提示符(CMD)或 PowerShell。

🔍 替代方案

如果 tree 命令无法满足你的需求,这里还有一些其他方法:

  • 使用 PowerShell (Windows)
    PowerShell 的 Get-ChildItem 命令功能非常强大。例如,递归列出当前目录所有文件和文件夹并导出到 CSV:

    powershell 复制代码
    Get-ChildItem -Recurse | Select-Object FullName | Export-Csv -Path files.csv -NoTypeInformation

    不过,这种方式生成的不是树形图,而是平面列表。

  • 使用图形化工具 (Windows)
    有一些第三方小工具(如搜索中提到的 "FolderTree")可以提供图形界面,一键生成目录树并导出为 Excel 或 CSV 格式。

希望这些信息能帮到你。

相关推荐
摘星编程13 小时前
Elasticsearch(es)在Windows系统上的安装与部署(含Kibana)
windows·elasticsearch·kibana
YJlio14 小时前
PsPing 学习笔记(14.1):ICMP Ping 进阶——替代系统 ping 的正确姿势
windows·笔记·学习
郑泰科技14 小时前
mstsc 频繁断开是由svchost 策略引起的吗?
windows·笔记·负载均衡
天庭鸡腿哥14 小时前
IOS上收费的软件,Android上免费!
macos·visual studio·everything
开开心心就好14 小时前
OCR识别工具可加AI接口,快捷键截图翻译便捷
java·网络·windows·随机森林·电脑·excel·推荐算法
天庭鸡腿哥15 小时前
大小不足1M,干翻Windows!
microsoft·macos·visual studio·everything
喂自己代言15 小时前
Windows 10 22H2 纯系统自带工具安全方案
windows·安全
天才程序YUAN20 小时前
Windows自动修改系统环境变量(PATH)中所有 D 盘路径的脚本
运维·windows
幺零九零零20 小时前
Windows + Docker + k6 + InfluxDB + Grafana
windows·docker·grafana
s421 小时前
Python安装在C盘后如何移到D盘
c语言·windows·python