windows上如何使用tree生成目录树

使用tree生成目录树

本文已被阅读过 Posted by 韩亚军 on 2019-05-16

前言

我们经常在写博客或者项目设计文档时需要列出项目的结构树。我们下可以使用tree列出项目结构,如下面这种:

1
2
3
4
5
6
7
8
9
10
11
12
news_watch_notice
├── cmd //main
├── conf
├── dis
├── Dockerfile
├── Makefile
├── pkg
├── qrcode
├── .travis.yml
├── README.md
├── vendor
├── utils

使用windows自带的tree

windows提供了一个tree命令可供我们使用,但是不太好用。

1
2
3
4
TREE [drive:][path] [/F] [/A]

/F 显示每个文件夹中文件的名称。
/A 使用 ASCII 字符,而不使用扩展字符。

D:\dev\gopath\src\news_watch_notice>tree /a

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
文件夹 PATH 列表
卷序列号为 989E-DB7E
D:.
+---.idea
+---cmd
| \---qrcode
+---conf
+---dis
| \---qrcode
+---pkg
| +---mail
| +---reptile
| \---wechat
+---qrcode
+---utils

D:\dev\gopath\src\news_watch_notice>tree /f

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
文件夹 PATH 列表
卷序列号为 989E-DB7E
D:.
│ .gitignore
│ .travis.yml
│ Dockerfile
│ Makefile
│ README.md
│ tree.md

├─.idea
│ .name
│ misc.xml
│ modules.xml
│ news_watch_notice.iml
│ vcs.xml
│ workspace.xml

├─cmd
│ │ news_watch_notice.go
│ │
│ └─qrcode
│ qrcode.jpg

可以看到确实按照我们想要的结构输出了,但是只有两个命令的使用并不能满足我们日常的需要,比如我们想忽略某个文件,想把生成的树状结构输出的一个文件中又该如何操作.

使用基于node的tree-node-cli

要想使用这些命令,我们需要做一些准备

  • nodejs安装,可以戳这里(建议使用LTS的稳定版本,另nodejs自带了npm安装包管理器)

安装tree-node-cli

1
2
#安装tree-node-cli模块包
npm install -g tree-node-cli

使用命令

1
2
3
4
5
6
7
8
9
10
11
12
13
$ tree --help
Usage: tree [options]

Options:
-V, --version output the version number
-a, --all-files All files, include hidden files, are printed.
--dirs-first List directories before files.
-d, --dirs-only List directories only.
-I, --exclude [patterns] Exclude files that match the pattern. | separates alternate patterns. Wrap your entire pattern in double quotes. E.g. `"node_modules|coverage".
-L, --max-depth <n> Max display depth of the directory tree.
-r, --reverse Sort the output in reverse alphabetic order.
-F, --trailing-slash Append a '/' for directories.
-h, --help output usage information

tree -d 只显示文件夹;

  • tree -L n 显示项目的层级。n表示层级数。比如想要显示项目三层结构,可以用tree -l 3;
  • tree -I pattern 用于过滤不想要显示的文件或者文件夹。比如你想要过滤项目中的vendor文件夹,可以使用tree -I “vendor”;
  • tree > tree.md 将项目结构输出到tree.md这个文件。

举例:如果我们要显示某个项目下3层的所有文件结构,同时又过滤node_modules文件夹,最后输出到tree.md,可以这么写

1
$ tree -L 3 -I "vendor" > tree.md

结果:tree.md

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
26
news_watch_notice
├── cmd
│ ├── news_watch_notice.go
│ └── qrcode
│ └── qrcode.jpg
├── conf
│ └── conf.conf
├── dis
│ ├── news_watch_notice
│ └── qrcode
│ └── qrcode.jpg
├── Dockerfile
├── Makefile
├── pkg
│ ├── mail
│ │ └── mail.go
│ ├── reptile
│ │ └── reptile.go
│ └── wechat
│ └── wechat.go
├── qrcode
│ └── qrcode.jpg
├── README.md
├── tree.md
├── utils
│ └── common_utils.go



推荐文章



支付宝打赏 微信打赏

坚持原创技术分享,您的支持将鼓励我继续创作!