简介

tree 命令显示当前文件夹的目录结构,这是一个非常有用的命令,可以帮我们迅速了解当前目录的结构。

tree命令格式

1
tree [drive:][path] [/F][/a]

参数

  • drive 盘符
  • path 文件路径
  • /F 递归列出所有文件
  • /A 只查看文件夹, 忽略文件

示例

1
2
3
4
5
6
7
PS D:\****> tree /?
以图形显示驱动器或路径的文件夹结构。

TREE [drive:][path] [/F] [/A]

/F 显示每个文件夹中文件的名称。
/A 使用 ASCII 字符,而不使用扩展字符。
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
27
28
29
30
31
32
PS D:\****> tree /f
Data 的文件夹 PATH 列表
卷序列号为 2A60-B492
D:.
│ main.py

├─.idea
│ │ .gitignore
│ │ misc.xml
│ │ modules.xml
│ │ pygrpc.iml
│ │ workspace.xml
│ │
│ └─inspectionProfiles
│ profiles_settings.xml

├─client
│ greeter_client.py

├─example
│ │ helloworld.proto
│ │ helloworld_pb2.py
│ │ helloworld_pb2_grpc.py
│ │ __init__.py
│ │
│ └─__pycache__
│ helloworld_pb2.cpython-38.pyc
│ helloworld_pb2_grpc.cpython-38.pyc
│ __init__.cpython-38.pyc

└─server
greeter_server.py

将结果写入文本文档

1
2
3
4
5
6
7
8
# 生成的文件目录树形结构写入到 tree.txt
tree /F > tree.txt

# 生成的文件夹树形结构写入到 tree.txt
tree /A > tree.txt

# 路径 把 D 盘下 a 的目录机构接到 D 盘下 b 文件的 tree.txt 文件中 如果指定的目录中已经存在该文件则覆盖
tree D:/a > D:/b/tree.txt

如果想要过滤有些目录,例如.idea,系统默认的tree命令则无法实现了,但可以通过node提供的两个工具来实现

  • tree-node-cli
  • tree-cli

tree-node-cli

为了避免和系统的 tree 命令冲突,需要用 treee 代替 tree,

安装 npm install -g tree-node-cli 或者 yarn add global tree-node-cli

1
2
3
4
5
6
7
8
9
10
-V, --version 输出版本号
-a, --all-files 打印所有文件,包括隐藏文件
--dirs-first 目录在前,文件在后
-d, --dirs-only 仅列出目录
-I, --exclude [patterns] 排除与模式匹配的文件。
用 | 隔开,用双引号包裹。例如 “node_modules|.git”
-L, --max-depth <n> 目录树的最大显示深度
-r, --reverse 按反向字母顺序对输出进行排序
-F, --trailing-slash 为目录添加'/'
-h, --help 输出用法信息
  1. tree -L 2 L 表示 level,表示的是目录的层级,n 表示目录的第几个层级
  2. tree -d -L 2 d 表示 directory,只显示目录名,不显示文件名
  3. tree -I ‘node_models’ I 表示 ignore,忽略指定的文件或者文件夹

tree-cli

为了避免和系统的 tree 命令冲突,需要用 treee 代替 tree,

安装 npm install -g tree-cli 或者 yarn add global tree-cli

1
2
3
4
5
6
7
8
9
10
11
12
13
14
--help, -h 输出用法信息
--version 输出版本号
--debug debug信息
--ignore 忽略文件或者文件夹
--base 指定根目录,支持相对路径或者绝对路径
--fullpath 每个文件均打印全路径
--noreport 不打印文件及文件夹的总数
-a 默认是不打印以'.'或者'..'开头的文件或者文件夹, -a则打印所有包括'.'或者'..'开头的
-d 只打印文件夹
--directoryFirst 只打印顶级文件夹
-f 为目录追加一个“/”,为套接字文件追加一个“=”和一个“|”表示FIFOs
-i 不打印缩进线,一般与-f选项一起使用时生成平级目录
-l 目录树的最大显示深度
-o 打印内容导成文件