Linux tree命令

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

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

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

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

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

详细用法如下:

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