Shell 打印目录树,将目录和文件系统以图形化的树状层次结构描述会使其更为形象。这种形式也被一些监控脚本用来更清晰易懂地呈现文件系统。

预备知识
tree命令能够以图形化的树状结构打印文件和目录。Linux发行版中通常不包含这个命令。你需要用包管理器自行安装。
实战演练
下面是树状Unix文件系统的一个示例:
$ tree ~/unixfs
unixfs/
|-- bin
|   |-- cat
|   `-- ls
|-- etc
|   `-- passwd
|-- home
|   |-- pactpub
|   |   |-- automate.sh
|   |   `-- schedule
|   `-- slynux
|-- opt
|-- tmp
`-- usr
8 directories, 5 files
tree命令支持多种选项。
-P选项可以只显示出匹配指定模式的文件:
$ tree path -P PATTERN    # 使用通配符描述模式并将其放入单引号中
例如:
$ tree PATH -P ’*.sh’    # 使用目录路径替换PATH|-- home|   |-- packtpub|   |   `-- automate.sh
-I选项可以只显示出不匹配指定模式的文件:
$ tree path -I PATTERN
-h选项可以同时打印出文件和目录的大小:
$ tree -h
补充内容
tree命令还可以在终端中生成HTML输出。
生成HTML形式的目录树
用下面的命令可以生成一个包含目录树输出的HTML文件:
$ tree PATH -H http://localhost -o out.html
将 http://localhost 替换为适合存放输出文件的URL。将PATH替换为主目录的真实路径。当前目录可以用.作为PATH。
根据目录列表生成的Web页面如下图所示:

极客教程