1、安装命令工具
sudo apt-get -y install tree
2、查看关于tree命令的帮助信息
ubuntu:~$ tree --help
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>]
------- Listing options -------
-a 列出所有文件。
-d 仅列出目录。
-l 遵循目录等符号链接。
-f 打印每个文件的完整路径前缀。
-x 仅保留在当前文件系统上。
-L 级下降深层级目录。
-R 达到最高等级时重新运行树。
-P 模式仅列出与给定模式相匹配的文件。
-I 模式不要列出与给定模式匹配的文件。
--ignore-case 模式匹配时忽略大小写。
--matchdirs在-P 模式匹配中包含目录名称。
--noreport 关闭树列表末尾的文件/目录计数。
--charset X 使用字符集X作为终端/ HTML和缩进行输出。
--filelimit# 不要下载超过#个文件的dirs。
--timefmt <f> 根据格式<f>打印和格式化时间。
-o 文件名输出到文件而不是标准输出。
---------------文件选项---------------
-q 将不可打印的字符打印为'?'。
-N 按原样打印不可打印的字符。
-Q 用双引号引用文件名。
-p 打印每个文件的保护。
-u 显示文件所有者或UID号码。
-g 显示文件组所有者或GID号码。
-s 打印每个文件的字节大小。
-h 以更易读的方式打印尺寸。
--si像-h,但在国际单位制中使用(幂数为1000)。
-D 打印上次修改日期或(-c)状态更改。
-F 附加'/','=','*','@','|'或'>'按照ls -F。
--inodes 打印每个文件的inode编号。
- 设备打印每个文件所属的设备ID号。
---------------排序选项---------------
-v 按文本字母数字排序文件。
-t 按上次修改时间对文件进行排序。
-c 按上次状态更改时间对文件进行排序。
-U 保留文件未排序。
-r 反转排序的顺序。
--dirsfirst 列出文件之前的目录(-U禁用)。
- 排序X选择排序:名称,版本,大小,mtime,ctime。
---------------图形选项---------------
-i 不要打印缩进线。
-A 打印ANSI线图形缩进线。
-S 使用CP437(控制台)图形缩进线打印。
-n 始终关闭着色(-C覆盖)。
-C 总是打开彩色。
--------------- XML / HTML / JSON选项---------------
-X 打印树的XML表示。
-J 打印出树的JSON表示。
-H baseHREF以baseHREF作为顶层目录打印HTML格式。
-T 字符串用字符串替换默认的HTML标题和H1标题。
--nolinks 关闭HTML输出中的超链接。
---------------其他选项---------------
--version 打印版本并退出.
--help 打印使用情况和此帮助信息并退出。
-- 选项处理终止符
3、使用方法(常用)
(1)显示当前目录的树形结构:tree
$ ls
android impl org //当前目录有三个文件夹
$ tree //将显示当前目录所有文件以及子目录文件
.
├── android
│ ├── accessibilityservice
│ │ ├── AccessibilityServiceInfo.aidl
│ .......
│ │ └── package.html
│ ├── accounts
...
(2)只查看当前第N级的目录和文件
$ tree -L 1 //只查看当前第1级的目录和文件
.
├── android
├── com
├── impl
├── jarjar-rules.txt
├── org
└── overview.html
$ tree -L 2 //只查看当前第2级的目录和文件
.
├── android
│ ├── accessibilityservice
│ ├── accounts
...
(3)只显示某个目录的文件 tree [目录1] [目录...]
$ tree impl org
impl
└── ng
├── event
│ ├── CableEventImpl.java
│ ...
└── interact
└── KeyMap.java
org
└── ca
├── appmanager
│ └── application
│ └── AppID.java
├── event
│ ├── CableEvent.java
│ ├── ...
│ └── UserEvent.java
└── interact
└── UserInput.java
(4)把目录结构信息保存到文本中
$ tree -L 2 > /home/tree.txt
(5)显示文件全路径
$ tree -f
$ tree -f >tree.txt
(6)只显示文件目录和*.c的c文件
$ tree -P *.c
(7)只显示两层目录和*.c的c文件
$ tree -L 2 -P *.c