背景
在写代码文档的时候,经常会用到展示项目架构,这时候如果可以有命令直接打印出目录树那就再好不过了,免的截图了。
思路
网上找了下,果然是有这种工具的,Mac - tree命令。
Mac默认是没有tree
命令的,需要手工安装下:
1 | brew install tree |
安装好之后,看下帮助文档:
1 | tree --help |
可以添加的参数很多,那么该用那些呢?
在一个
python
项目中,先只加文件夹名看下:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23tree app
app
├── __init__.py
├── __pycache__
│ └── __init__.cpython-37.pyc
├── main
│ ├── __init__.py
│ ├── __pycache__
│ │ ├── __init__.cpython-37.pyc
│ │ ├── functions.cpython-37.pyc
│ │ └── views.cpython-37.pyc
│ ├── functions.py
│ └── views.py
└── module
├── __init__.py
├── __pycache__
│ ├── __init__.cpython-37.pyc
│ ├── functions.cpython-37.pyc
│ └── views.cpython-37.pyc
├── functions.py
└── views.py
5 directories, 14 filespyc
是编译的临时文件,我们要把删掉,看下说明,可以用-I
来:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16tree -I *.pyc app
app
├── __init__.py
├── __pycache__
├── main
│ ├── __init__.py
│ ├── __pycache__
│ ├── functions.py
│ └── views.py
└── module
├── __init__.py
├── __pycache__
├── functions.py
└── views.py
5 directories, 7 files__pycache__
也是临时文件,也把删掉:1
2
3
4
5
6
7
8
9
10
11
12
13tree -I *.pyc -I __pycache__ app
app
├── __init__.py
├── main
│ ├── __init__.py
│ ├── functions.py
│ └── views.py
└── module
├── __init__.py
├── functions.py
└── views.py
2 directories, 7 files可以看出
-I
是可以加多个的,每个-I
后面加一个pattern
。在上面的例子中,其实所有的
.pyc
文件都在__pychache__
文件夹下,可以直接忽略该文件夹即可:1
2
3
4
5
6
7
8
9
10
11
12
13tree -I __pycache__ app
app
├── __init__.py
├── main
│ ├── __init__.py
│ ├── functions.py
│ └── views.py
└── module
├── __init__.py
├── functions.py
└── views.py
2 directories, 7 files那么如果只要文件夹的结构呢?
-d
参数1
2
3
4
5
6
7
8
9tree -d app
app
├── __pycache__
├── main
│ └── __pycache__
└── module
└── __pycache__
5 directories忽略
__pycache__
文件夹:1
2
3
4
5
6tree -d -I __pycache__ app
app
├── main
└── module
2 directories
总结
通过brew
安装tree
工具之后,即可在命令行中使用tree
命令展示文件\文件夹目录树:
直接加对应的文件夹来展示某文件夹范围内的文件树
1
tree app
使用
-I
参数来忽略不展示的文件或子文件夹,可添加多个-I
1
tree -I *.pyc -I __pycache__ app
使用
-d
来仅展示文件夹树1
tree -d app
多参数可以混合使用
1
tree -d -I __pycache__ app
更多的参数使用,可以在有需要的时候参考
--help
内容1
tree --help