文章原创如需转载,请注明出处”本文首发于一之笔”;
前言
在整理自己的GitHub主页,发现文档目录结构不好写,自己也尝试敲出来,无奈,工程浩大,看着别人的目录树,感觉很好,比如下面的这种,有没有感觉很好看
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|-- kibana
|-- .bowerrc
|-- .gitignore
|-- .jshintrc
|-- .travis.yml
|-- CONTRIBUTING.md
|-- FAQ.md
|-- Gruntfile.js
|-- LICENSE.md
|-- README.md
|-- STYLEGUIDE.md
|-- bower.json
|-- package.json
|-- docs
| |-- access.asciidoc
这篇文章:Markdown语法:表示目录文件结构,方法汇总介绍了不同的工具,方法,我尝试了其中一种 ==mddir== 但是,不尽如我意,打算试试 tree
tree安装
brew install tree
没有 brew 自行安装,也很简单,如下
ruby -e “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)”
1
2
3
4
5
6
7
8
安装完之后:
==> Downloading https://homebrew.bintray.com/bottles/tree-1.7.0.high_sierra.bottle.1
######################################################################## 100.0%
==> Pouring tree-1.7.0.high_sierra.bottle.1.tar.gz
🍺 /usr/local/Cellar/tree/1.7.0: 8 files, 114.3KB
使用方法
- tree -a 显示 当前目录下,所有的文件结构,类似如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
├── .DS_Store
├── .git
│ ├── COMMIT_EDITMSG
│ ├── FETCH_HEAD
│ ├── HEAD
│ ├── ORIG_HEAD
│ ├── config
│ ├── description
│ ├── hooks
│ │ ├── applypatch-msg.sample
│ │ ├── commit-msg.sample
│ │ ├── post-update.sample
│ │ ├── pre-applypatch.sample
│ │ ├── pre-commit.sample
│ │ ├── pre-push.sample
│ │ ├── pre-rebase.sample
│ │ ├── pre-receive.sample
│ │ ├── prepare-commit-msg.sample
│ │ └── update.sample
│ ├── index
- tree -d 只显示文件夹
- tree -L n 显示项目的层级。n表示层级数。比如想要显示项目二层结构,可以用tree -L 2,这个 L 参数是大写
对汉字支持不是很有好
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
.
├── Category
│ ├── Map格�\217�\214\226
│ ├── UIBarButtonItem�\210\206类
│ ├── UIColor�\232\204�\210\206类
│ ├── UIGesture�\210\206类
│ ├── UIImage�\232\204�\210\206类
│ ├── UIViewFrame
│ ├── �\227��\234\237�\210��\226�
│ └── 计�\227�\226\207件�\200�大�\217
├── Macros
│ └── Single.h
├── README.md
└── Utils
├── DateManger
├── RSA+3DES
├── �\230�止�\225��\204,�\227符串崩�\203crashLib
├── 访�\227�系�\237�\233��\206\214
└── �\216��\210��\217��\211�\214\226�\217\222件ConsoleCheseInput
- tree -I pattern 用于过滤不想要显示的文件或者文件夹。比如你想要过滤项目中的README,可以使用tree -I “README”;
举个例子:
如果我们要显示某个项目下2层的所有文件结构,同时又过滤README,最后输出到 md 文件,可以这么写
tree -L 2 -I “README”
输出如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
.
├── Category
│ ├── Map格�\217�\214\226
│ ├── UIBarButtonItem�\210\206类
│ ├── UIColor�\232\204�\210\206类
│ ├── UIGesture�\210\206类
│ ├── UIImage�\232\204�\210\206类
│ ├── UIViewFrame
│ ├── �\227��\234\237�\210��\226�
│ └── 计�\227�\226\207件�\200�大�\217
├── Macros
│ └── Single.h
├── README.md
└── Utils
├── DateManger
├── RSA+3DES
├── �\230�止�\225��\204,�\227符串崩�\203crashLib
├── 访�\227�系�\237�\233��\206\214
└── �\216��\210��\217��\211�\214\226�\217\222件ConsoleCheseInput
更多帮助查看 tree -help
1
2
3
4
5
6
7
lucy@lucydeMacBook-Pro:~/Desktop/个人本博客/LX_Extend$ tree -help
tree: Invalid argument -`e'.
usage: tree [-acdfghilnpqrstuvxACDFJQNSUX] [-H baseHREF] [-T title ]
[-L level [-R]] [-P pattern] [-I pattern] [-o filename] [--version]
[--help] [--inodes] [--device] [--noreport] [--nolinks] [--dirsfirst]
[--charset charset] [--filelimit[=]#] [--si] [--timefmt[=]<f>]
[--sort[=]<name>] [--matchdirs] [--ignore-case] [--] [<directory list>]
☛兄dei,请我喝杯茶☚