tree 命令是一个非常实用的工具,它以树状图的形式递归地展示指定目录下的所有文件和子目录,这比反复使用 ls 命令要直观和高效得多,特别适合用来快速了解一个复杂项目的目录结构。

核心要点
- macOS 默认不包含
tree:与一些 Linux 发行版不同,macOS 系统自带的命令行工具中没有预装tree命令。 - 需要手动安装:你需要使用包管理器来安装它,最常用的包管理器是 Homebrew。
- 安装和使用非常简单:整个过程只需要几条命令。
第一步:安装 tree 命令
最推荐的方法是使用 Homebrew。
安装 Homebrew (如果尚未安装)
如果你的 Mac 上还没有 Homebrew,请先打开“终端”(Terminal),然后复制并粘贴以下命令来安装,Homebrew 的官方安装脚本会处理一切:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
安装过程中可能会提示你输入电脑密码,请正常输入,安装完成后,可以运行 brew --version 来验证是否成功。
使用 Homebrew 安装 tree
Homebrew 安装成功后,就可以用一条命令轻松安装 tree 了:

brew install tree
tree 命令就已经安装好了,你可以在任何目录下使用它。
第二步:使用 tree 命令
安装完成后,tree 的基本用法非常简单。
基本用法
在你想要查看的目录下运行 tree 命令,查看当前目录:
tree
如果你想要查看特定路径的目录结构,可以指定路径:

tree /Users/your_username/Documents
示例输出:
.
├── Projects
│ ├── my_app
│ │ ├── src
│ │ │ ├── main.js
│ │ │ └── utils.js
│ │ ├── package.json
│ │ └── README.md
│ └── another_project
│ └── script.py
├── Presentations
│ └── Q4_Report.pptx
└── Notes.txt
4 directories, 7 files
在这个输出中:
- 代表当前目录。
- 表示一个文件或目录是它父级目录的同级(非最后一个)。
- 表示一个文件或目录是它父级目录的最后一个。
- 和 下面的缩进部分表示子层级。
第三步:常用选项参数
tree 命令有很多有用的选项,可以让你自定义输出。
| 选项 | 长选项 | 描述 | 示例 |
|---|---|---|---|
-a |
--all |
显示所有文件,包括隐藏文件(以 开头的文件)。 | tree -a |
-d |
--dirsfirst |
只显示目录,不显示文件。 | tree -d |
-L |
--levels |
限制显示的目录层级深度。 | tree -L 2 (只显示当前目录和下一级) |
-C |
--color |
用颜色区分不同类型的文件(默认开启)。 | tree -C |
-I |
--ignore-pattern |
忽略匹配特定模式的文件或目录。 | tree -I "node_modules" (忽略所有 node_modules 目录) |
-h |
--human-readable |
以人类可读的格式显示文件大小(如 K, M, G)。 | tree -h |
-f |
--file |
在每个条目前面显示完整的相对路径。 | tree -f |
-p |
--prune |
不显示空目录。 | tree -p |
-o |
--outputfile |
将输出结果保存到指定文件中,而不是打印到终端。 | tree -o my_dir_structure.txt |
组合使用示例
-
查看当前目录下两层的结构,并忽略
node_modules和.git目录:tree -L 2 -I "node_modules|.git"
-
只显示目录,并限制深度为 1:
tree -d -L 1
-
显示所有文件(包括隐藏文件),并带上文件大小:
tree -a -h
-
将某个项目的目录结构保存为 Markdown 文件:
你可以结合
tree和代码块标记,方便地嵌入到文档中。tree -L 3 -I 'node_modules|dist|build' > project_structure.md
然后你可以在
project_structure.md文件中手动添加 Markdown 代码块标记:## 项目结构 ```bash . ├── src │ ├── components │ │ ├── Header.jsx │ │ └── Footer.jsx │ ├── pages │ │ └── Home.jsx │ ├── App.jsx │ └── index.js ├── public │ └── index.html ├── package.json └── README.md
第四步:卸载 tree
如果你不再需要 tree 命令,可以使用 Homebrew 轻松卸载:
brew uninstall tree
| 任务 | 命令 |
|---|---|
| 安装 | brew install tree |
| 基本使用 | tree |
| 查看特定目录 | tree /path/to/directory |
| 只看目录 | tree -d |
| 限制层级 | tree -L 2 |
| 忽略文件 | tree -I "pattern" |
| 卸载 | brew uninstall tree |
现在你已经掌握了在 macOS 上使用 tree 命令的所有必要知识,它可以极大地提升你在命令行中管理文件和项目的效率。
