开发工具

tree-to-file.sh

一个托管在 helper.sh 的 Shell 脚本,适用于 Linux、macOS 和常见 Unix 环境,用来把经过过滤的目录树导出到文本文件。它优先使用系统自带的 tree;如果未安装,会根据当前环境尝试调用包管理器安装;如果安装仍不可行,则自动退回到内置的 find + awk 方案,保证仍能产出结果。

一键命令

curl -fsSL helper.sh/tree-to-file.sh | sh
curl -fsSL helper.sh/tree-to-file.sh -o tree-to-file.sh && sh tree-to-file.sh tree.txt 'venv|__pycache__|.git|.gitignore|docker|node_modules|.idea'

运行要求

  • Linux、macOS 或常见 Unix Shell 环境
  • sh
  • find
  • awk
  • 若需自动安装 tree,最好具备 sudo 或 root 权限

适用场景

  • 把项目结构导出到 tree.txt,用于提问、报错反馈或给 AI 提供上下文
  • 跳过 venv、node_modules 等大目录,生成更适合分享的目录概览
  • 在 Linux 和各类 Unix-like 主机上统一目录树导出方式

脚本亮点

  • 优先使用系统 tree,输出形式更符合常见习惯
  • 内置 brew、apt、dnf、yum、pacman、zypper、apk、pkg 等常见安装路径
  • 即使无法安装 tree,也会自动回退到内置渲染逻辑继续生成 tree.txt

推荐流程

  1. 从 helper.sh 拉取脚本并用 sh 执行。
  2. 脚本会先检查当前系统是否已提供 tree 命令。
  3. 如果 tree 缺失,会在可行时尝试通过系统包管理器安装。
  4. 执行完成后,在当前目录检查生成的 tree.txt。

安全提示

  • 在敏感主机上,建议先查看原始脚本内容,再决定是否直接 pipe 给 sh。
  • 自动安装 tree 可能需要 sudo 或 root,并且可能触发包索引刷新。
  • 内置回退逻辑按目录名精确忽略,不支持完整 shell glob 语法。

相关文章

tree-to-file.sh 在 CentOS 7 和常见 Unix 主机上的安装与使用过程

一篇面向实操的说明,讲清楚 tree-to-file.sh 在 CentOS 7 上如何自动安装 tree、如何导出目录结构,以及它适合用在迁移准备、主机排查和 AI 上下文整理的哪些场景。

相关专题

CentOS 7 运维恢复

面向仍在运行 CentOS 7 的遗留主机,集中处理 yum 源失效、镜像仓库 404、Docker 数据迁移等运维恢复场景。

查看专题

问题页面

如何在 Linux 上导出目录树到 tree.txt

当你需要一套可复用的方法导出当前目录结构,并在缺少 tree 时自动安装它,就用 tree-to-file.sh。

打开页面