什么是 tree
tree 是一个用于以树状结构展示目录及文件层级关系的命令行工具。
最初诞生于 Unix 生态,并不是 Shell(如 Bash、Zsh)的内置命令,而是一个独立的开源程序。大多数 Linux 发行版都会提供 tree 软件包,但部分发行版需要手动安装。
项目历史
tree 最初由 Steve Baker 开发,至今仍以独立项目的形式维护。
官方发布页面:
官方源码仓库:
- GitLab(主镜像)
- GitHub(备份镜像)
与 Windows 的关系
Unix/Linux 中的 tree 与 Windows 自带的 tree 命令并不是同一个项目。
Windows 提供了自己的 tree 实现,而 Linux、macOS 等 Unix 系统通常使用 Steve Baker 开源项目的实现(由各发行版打包维护)。
tree 属于典型的 Unix 小工具(Unix Utility)。它专注完成一件事:以树状结构展示目录。像 curl、git、ffmpeg 这类拥有庞大生态的独立项目不同,tree 本身功能单一、依赖极少,因此项目规模也非常小。
tree 并不是一个由统一组织维护的跨平台工具,不同操作系统提供了不同的实现。
| 平台 | 实现 | 是否同一项目 |
|---|---|---|
| Linux | Steve Baker 的开源 tree(发行版打包) | ✅ |
| macOS | Homebrew/MacPorts 安装的开源 tree | ✅ |
| Windows | Microsoft 自带 tree | ❌ 独立实现 |