Linux tree命令

Linux tree命令用于以树状图列出目录的内容。
执行tree指令,它会列出指定目录下的所有文件,包括子目录里的文件。

当你需要向别人展示或者介绍某个项目的目录结构时,tree命令就可以派上用场了。

不仅仅是在终端显示,tree命令还支持输出xml|json|html格式的数据。

如果你有一个包含大量html文件的目录,需要生成一个树形的index导航,下面的命令就可以解决:

$ tree -H . ./ -T IndexTitle -o index.html

详细用法如下:

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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
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>]
------- 列表相关选项 -------
-a 显示所有文件和目录
-d 显示目录名称而非内容
-l 如遇到性质为符号连接的目录,直接列出该连接所指向的原始目录
-f 在每个文件或目录之前,显示完整的相对路径名称
-x 将范围局限在现行的文件系统中,若指定目录下的某些子目录,其存放于另一个文件系统上,则将该子目录予以排除在寻找范围外
-L level 指定目录层级
-R Rerun tree when max dir level reached.
-P pattern 只显示匹配pattern的文件或目录名称
-I pattern 不显示匹配pattern的文件或目录名称
--ignore-case 忽略大小写
--matchdirs Include directory names in -P pattern matching.
--noreport 不显示最后面的文件/目录总数
--charset X 设置字符集
--filelimit # Do not descend dirs with more than # files in them.
--timefmt <f> 格式化输出时间(如"%Y-%m-%d %H:%M:%S")
-o filename 输出内容写入指定文件
-------- 文件相关选项 ---------
-q 用"?"号取代控制字符,列出文件和目录名称
-N 直接列出文件和目录名称,包括控制字符
-Q 输出的文件名用双引号""包起来
-p 列出权限标示
-u 列出文件或目录的拥有者名称,没有对应的名称时,则显示用户识别码
-g 列出文件或目录的所属群组名称,没有对应的名称时,则显示群组识别码
-s 列出文件或目录大小
-h 自动选择文件大小的单位(1M=1024Kb)
--si 类似-h,但是使用国际单位(1M=1000Kb)
-D 列出文件或目录的更改时间
-F 在执行文件,目录,Socket,符号连接,管道名称名称,各自加上"*","/","=","@","|"号
--inodes 输出每个文件的索引节点
--device 输出每个文件归属的设备ID
------- 排序相关选项 -------
-v 根据文件名排序
-t 用文件和目录的更改时间排序
-c 根据ctime排序
-U 文件和文件夹混杂
-r 逆序排列(与--sort配合使用)
--dirsfirst 显示列表优先显示文件夹
--sort X 排序选项(name,version,size,mtime,ctime)
------- 图形显示相关选项 ------
-i 不以阶梯状列出文件或目录名称
-A 使用ASNI绘图字符显示树状图而非以ASCII字符组合
-S Print with CP437 (console) graphics indentation lines.
-n 不在文件和目录清单加上色彩
-C 在文件和目录清单加上色彩,便于区分各种类型。
------- XML/HTML/JSON相关选项 -------
-X 以XML格式输出目录结构
-J 以Json格式输出目录结构
-H baseHREF 以HTML格式输出目录结构(baseHREF为top节点)
-T string 设置以HTML格式输出时的html标题和head标题
--nolinks 以HTML格式输出目录结构时,不显示超链接
---- 其它杂项 ----
--version 输出版本并退出
--help 输出帮助文档并退出
-- Options processing terminator