Linux 学习记录:tree 显示树形目录结构

这篇文章总结下 Linux 和 Windows 中 tree 命令的常用使用方法。

1. 背景

有时候在进行工程项目展示时,需要提供目录结构,这时候最方便的一种展示形式是 树形结构tree 命令就是帮助我们实现这个功能的。

2. 使用方法

2.1 在 Windows 上使用

Windows 上 tree 命令的参数很少,使用起来较为简单。

主要有两个参数(大小写不敏感),注意不是 -f / -a 的格式:

  • /f : 显示当前目录下所有的文件,包括目录名和文件名;
  • /a : 只显示当前目录下的所有目录名,即:当前目录的子目录、子目录的子目录…….,不会显示任何一个目录中的文件名。注:这里的 /a 参数不是 /all 的意思

下面来看具体的例子。

首先利用 tree /f 查看当前目录下的所有文件,同时列出目录名:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
PS C:\Users\tanjuntao\Desktop\组会> tree /f
文件夹 PATH 列表
卷序列号为 004F-9E97
C:.
│ api第二版本规划-2019.3.4.pptx
│ API组科研讨论_1.28.pptx
0924.pptx
1119.pptx
│ 恶意样本攻击和防御.pptx
2019-1-26.pptx
│ 保存----保存.pptx
│ 第二版本规划-2019.3.4.pptx

├─2018-4-17-论文组会
│ juntaotan-poisoning attacks against regression learning- slides.pptx
│ 讲稿.docx

└─算法
Aggarwal2009_Chapter_AdaptiveSamplingForK-MeansClus.pdf
kechen.pdf
prob_inequalities.pdf

如果我们使用 tree /a,那么将只会显示目录名:

1
2
3
4
5
6
PS C:\Users\tanjuntao\Desktop\组会> tree /a
文件夹 PATH 列表
卷序列号为 004F-9E97
C:.
+---2018-4-17-论文组会
\---算法

2.2 在 Linux 上使用

Linux 上 tree 命令的参数比 Windows 上要多,使用起来稍微麻烦一点。

主要的参数有(区分大小写):

  • -f : 显示当前目录(包括各个子目录)的所有文件;
  • -d : 显示当前目录(包括各个子目录)的所有目录名;
  • -L : 后面需要跟一个数字 num,用来控制目录的深度。例如 num = 1,那么表示仅仅显示当前目录(不包括任何子目录)下的文件名额目录名。

前面两个参数的使用方法较为简单,不再赘述。下面演示下 -L 参数的具体使用。

输入:

1
tree -L 1  #目录层数是 1,即当前目录下的所有文件名和目录名

输出:

1
2
3
4
5
6
7
8
user@DataServer:/datapool/workspace/tanjuntao/data$ tree -L 1
.
├── cifar
├── mnist
├── processed
└── raw

4 directories, 0 files

num 的值改为 2:

输入:

1
tree -L 2 #目录层数为 2

输出:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
user@DataServer:/datapool/workspace/tanjuntao/data$ tree -L 2
.
├── cifar
│   └── MNIST
├── mnist
│   ├── MNIST
│   ├── processed
│   └── raw
├── processed
│   ├── test.pt
│   └── training.pt
└── raw
├── t10k-images-idx3-ubyte
├── t10k-labels-idx1-ubyte
├── train-images-idx3-ubyte
└── train-labels-idx1-ubyte

8 directories, 6 files

References

Donate comment here