tree
tree 以树状结构递归显示目录,用来一眼看清项目布局。它不是 coreutils 的一部分,多数发行版要自己装(apt install tree / dnf install tree)。
tree [选项] [目录]不指定目录时显示当前目录 默认不显示隐藏文件,末尾会汇总目录数和文件数
| 选项 | 说明 |
|---|---|
-L <层数> |
限制递归深度(level),看大项目时几乎必加 |
-d |
只显示目录,不显示文件(directory) |
-a |
显示隐藏文件(all) |
-f |
每一项显示完整相对路径 |
-i |
不画树枝线,配合 -f 得到纯路径列表 |
-I <模式> |
排除匹配的项(ignore),多个模式用 ` |
-P <模式> |
只显示匹配的项(pattern) |
--gitignore |
按 .gitignore 的规则排除 |
-h |
大小转成 K/M/G |
--du |
目录显示其子项累计大小 |
-p |
显示权限位 |
-C |
强制着色,重定向到文件或管道时也保留 |
-o <文件> |
输出写到文件 |
1. 看两层结构
tree -L 2输出:
.├── assets├── cs-basics│ ├── cheatsheet│ ├── network│ └── shell├── latex├── linux-tools│ ├── 01-file-ops│ ├── 02-text-processing│ └── ...└── templates
12 directories, 3 files2. 排除噪声目录
tree -L 2 -I 'node_modules|.git|dist'tree --gitignore
-I的模式之间用|分隔,用的是通配符不是正则 项目里已经写好.gitignore时,--gitignore省事得多
3. 只看目录骨架
tree -d -L 3文件太多时先看目录,结构比内容更容易记住
4. 生成纯路径列表
tree -fi -L 2
-i去掉树枝线,-f补上路径前缀,结果每行是一条可用的路径 这种输出可以直接喂给别的命令,画着树枝的默认输出不行
5. 带上大小
tree -h --du -L 1不加
--du时目录显示的是目录项自身占的空间,不是里面内容的总和 只关心谁占地方,直接用 du 更合适
man tree- tree 主页