tree--一键输出目录树状图

安装

Linux

tree本是Linux系统下的一个工具,不过Linux系统默认并没有集成,需要手动安装,我们这里以Ubuntu版本为例:

1
sudo apt-get install tree

Windows

Windows系统中提供了一个tree命令,不过这个tree并不是Linux系统中的tree,这个版本的tree功能有限,只会显示该目录下文件夹的名称。

Windows下,也可以手动安装:

1
pip install tree

语法

1
tree [-aACdDfFgilnNpqstux][-I <范本样式>][-P <范本样式>][目录...]

参数说明

  • -a 显示所有文件和目录。
  • -A 使用ASNI绘图字符显示树状图而非以ASCII字符组合。
  • -C 在文件和目录清单加上色彩,便于区分各种类型。
  • -d 显示目录名称而非内容。
  • -D 列出文件或目录的更改时间。
  • -f 在每个文件或目录之前,显示完整的相对路径名称。
  • -F 在执行文件,目录,Socket,符号连接,管道名称名称,各自加上”*”,”/“,”=”,”@”,”|”号。
  • -g 列出文件或目录的所属群组名称,没有对应的名称时,则显示群组识别码。
  • -i 不以阶梯状列出文件或目录名称。
  • -L level 限制目录显示层级。
  • -l 如遇到性质为符号连接的目录,直接列出该连接所指向的原始目录。
  • -n 不在文件和目录清单加上色彩。
  • -N 直接列出文件和目录名称,包括控制字符。
  • -p 列出权限标示。
  • -P<范本样式> 只显示符合范本样式的文件或目录名称。
  • -q 用”?”号取代控制字符,列出文件和目录名称。
  • -s 列出文件或目录大小。
  • -t 用文件和目录的更改时间排序。
  • -u 列出文件或目录的拥有者名称,没有对应的名称时,则显示用户识别码。
  • -x 将范围局限在现行的文件系统中,若指定目录下的某些子目录,其存放于另一个文件系统上,则将该子目录予以排除在寻找范围外。

实例

忽略某些文件夹

我们前端项目中,有个node_modules文件夹,做过前端的人都了解,这个文件夹非常的重,而且多数情况下我们也不需要关心其目录结构,因此我们在输出前端项目结构的时候,就需要忽略掉此文件夹

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
tree -I "node_modules"

## 输出结果
.
├── CHANGELOG.md
├── README.md
├── dist
│ ├── extension.js
│ └── extension.js.map
├── out
├── package-lock.json
├── package.json
├── src
│ ├── extension.ts
│ └── process.ts
├── tsconfig.json
├── vsc-extension-quickstart.md
├── webpack.config.js
└── yarn.lock

3 directories, 12 files

另外,-I支持正则匹配,因此我们如果需要忽略多个文件夹时,可以用如下写法:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
tree -I "node_modules|dist|cache|*.md"

## 输出结果
.
├── out
├── package-lock.json
├── package.json
├── src
│ ├── extension.ts
│ └── process.ts
├── tsconfig.json
├── webpack.config.js
└── yarn.lock

2 directories, 7 files

只看两级目录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
tree -L 2

## 输出结果
.
├── CHANGELOG.md
├── README.md
├── dist
│ ├── extension.js
│ └── extension.js.map
├── node_modules
│ ├── @babel
... ## 这里太多省略了
│ └── yocto-queue
├── out
├── package-lock.json
├── package.json
├── src
│ ├── extension.ts
│ └── process.ts
├── tsconfig.json
├── vsc-extension-quickstart.md
├── webpack.config.js
└── yarn.lock

562 directories, 12 files

本文永久地址:tree–一键输出目录树状图

本文永久链接: https://www.mulianju.com/tree/