# MacOS如何使用 tree 生成目录结构
# Homebrew安装
根据官网的方法安装
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
比如我的:
==> This script will install:
/usr/local/bin/brew
/usr/local/share/doc/homebrew
/usr/local/share/man/man1/brew.1
/usr/local/share/zsh/site-functions/_brew
/usr/local/etc/bash_completion.d/brew
/usr/local/Homebrew
Press RETURN to continue or any other key to abort
一路按照提示操作即可,不出意外的话,就安装成功了:
➜ ~ brew -v
Homebrew 2.1.9
Homebrew/homebrew-core (git revision c8ff; last commit 2019-08-01)
Homebrew/homebrew-cask (git revision 04bff; last commit 2019-08-02)
# Tree 安装
brew install tree
常用命令:
# 下载
brew install tree
# 显示某个文件夹下的所有文件
tree -a
# 只显示文件夹
tree -d
# 显示项目的层级,如三级
tree -L 3
# 过滤,如除node_modules文件
tree -I "node_modules"
# 输出
tree > tree.md
# Help
tree --help
最后,我的输出:tree -I "node_modules" > tree.md
查看 tree.md
的内容如下:
.
├── README.md
├── dist
├── package.json
├── src
│ ├── app.scss
│ ├── font-awesome
│ │ ├── fonts
│ │ │ ├── FontAwesome.otf
│ │ │ ├── fontawesome-webfont.eot
│ │ │ ├── fontawesome-webfont.svg
│ │ │ ├── fontawesome-webfont.ttf
│ │ │ ├── fontawesome-webfont.woff
│ │ │ └── fontawesome-webfont.woff2
│ │ └── scss
│ │ ├── _animated.scss
│ │ ├── _bordered-pulled.scss
│ │ ├── _core.scss
│ │ ├── _fixed-width.scss
│ │ ├── _icons.scss
│ │ ├── _larger.scss
│ │ ├── _list.scss
│ │ ├── _mixins.scss
│ │ ├── _path.scss
│ │ ├── _rotated-flipped.scss
│ │ ├── _screen-reader.scss
│ │ ├── _stacked.scss
│ │ ├── _variables.scss
│ │ └── font-awesome.scss
│ ├── index.html
│ ├── index.js
│ ├── index.jsx
│ ├── react.png
│ └── style.css
├── tree.md
├── webpack.config.js
└── yarn.lock
5 directories, 31 files
# tree命令行参数
命令行参数 | 含义 |
---|---|
-a | 显示所有文件和目录。 |
-A | 使用ASNI绘图字符显示树状图而非以ASCII字符组合。 |
-C | 在文件和目录清单加上色彩,便于区分各种类型。 |
-d | 显示目录名称而非内容。 |
-D | 列出文件或目录的更改时间。 |
-f | 在每个文件或目录之前,显示完整的相对路径名称。 |
-F | 在末尾追加描述性字符,如 ls -F |
-g | 列出文件或目录的所属群组名称,没有对应的名称时,则显示群组识别码。 |
-i | 不以阶梯状列出文件或目录名称。 |
-I | 不显示符合范本样式的文件或目录名称。 |
-l | 如遇到性质为符号连接的目录,直接列出该连接所指向的原始目录。 |
-n | 不在文件和目录清单加上色彩。 |
-N | 直接列出文件和目录名称,包括控制字符。 |
-p | 列出权限标示。 |
-P | 只显示符合范本样式的文件或目录名称。 |
-q | 用"?"号取代控制字符,列出文件和目录名称。 |
-s | 列出文件或目录大小。 |
-t | 用文件和目录的更改时间排序。 |
-u | 列出文件或目录的拥有者名称,没有对应的名称时,则显示用户识别码。 |
-x | 将范围局限在现行的文件系统中,若指定目录下的某些子目录,其存放于另一个文件系统上,则将该子目录予以排除在寻找范围外。 |