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页面如下图所示: