tree 参数选项:
-a:显示所有文件,包括隐藏文件。
-d:只显示目录。
-f:显示每个文件的全路径。
-i:不显示树枝,常与-f参数配合使用。
-L level:遍历目录的最大层数,level为大于0的正整数。
-F:在执行文件,目录,Socket,符号连接,管道名称等不同类型文件的结尾,各自加上"*""/""@""|"号,类似ls命令的-F选项。


范例. 不带参数
[root@testdb62 ~]# tree /tmp
/tmp
├── aaa.log
├── a.log
├── import_mysql_data.sh
├── systemd-private-0b4f7a702deb460eaee9b4daf2de2651-chronyd.service-nKWU9N
│   └── tmp
└── wordpress.zip

2 directories, 4 files



范例. 带 -a 参数显示包括隐藏文件的所有文件。
[root@testdb62 ~]# tree -a /tmp
/tmp
├── aaa.log
├── a.log
├── .font-unix
├── .ICE-unix
├── import_mysql_data.sh
├── systemd-private-0b4f7a702deb460eaee9b4daf2de2651-chronyd.service-nKWU9N
│   └── tmp
├── .Test-unix
├── wordpress.zip
├── .X11-unix
└── .XIM-unix

7 directories, 4 files



范例. 只列出根目录下第一层目录的结构( -L 功能)
-L 参数后接数字表示要查看目录的层数,不带 -L 选项默认显示所有的层数。
[root@testdb62 ~]# tree -L 1 /data
/data
├── applogs
├── backup
├── backup2windows
├── clickhouse
├── code
├── docker_backup
├── docker_data
├── elasticsearch
├── hadoop
├── hbase
├── liquibase_sql
├── mongodb
├── mysql
├── mysql_3307
├── mysql_3308
├── mysqlbak
├── pgsql_data
├── redis
├── restore
├── xxl_job
├── zibo_binlog
└── zookeeper

22 directories, 0 files
 
 
 
范例. 只显示所有的目录(-d功能)
[root@testdb62 ~]# tree -d /data/mysql
/data/mysql
├── basedata
├── db_1
├── db_2
├── db_3306
├── jumpserver
├── mysql
├── nacos_dev
├── otter
├── performance_schema
├── scott
└── sys

11 directories


 
范例. -f 选项和 -i 选项的使用
-f 选项可显示完整的路径名称,使用 -i 选项则不显示树枝部分。
1.显示内容的完整路径
[root@testdb62 ~]# tree -L 1 -f /boot/
/boot
├── /boot/config-3.10.0-1062.el7.x86_64
├── /boot/efi
├── /boot/grub
├── /boot/grub2
├── /boot/initramfs-0-rescue-304ba91566574244a4ed6752152ec067.img
├── /boot/initramfs-3.10.0-1062.el7.x86_64.img
├── /boot/symvers-3.10.0-1062.el7.x86_64.gz
├── /boot/System.map-3.10.0-1062.el7.x86_64
├── /boot/vmlinuz-0-rescue-304ba91566574244a4ed6752152ec067
└── /boot/vmlinuz-3.10.0-1062.el7.x86_64

3 directories, 7 files



2. -i 不显示树枝,当需要获取所有文件的完整路径时,这个命令很好用
[root@testdb62 ~]# tree -L 1 -fi /boot/
/boot
/boot/config-3.10.0-1062.el7.x86_64
/boot/efi
/boot/grub
/boot/grub2
/boot/initramfs-0-rescue-304ba91566574244a4ed6752152ec067.img
/boot/initramfs-3.10.0-1062.el7.x86_64.img
/boot/symvers-3.10.0-1062.el7.x86_64.gz
/boot/System.map-3.10.0-1062.el7.x86_64
/boot/vmlinuz-0-rescue-304ba91566574244a4ed6752152ec067
/boot/vmlinuz-3.10.0-1062.el7.x86_64

3 directories, 7 files



范例.使用tree命令区分目录和文件的方法
1.使用 -F 参数会在目录后面添加 “/”,方便区分目录
[root@testdb62 ~]# tree -L 1 -F /boot/
/boot/
├── config-3.10.0-1062.el7.x86_64
├── efi/
├── grub/
├── grub2/
├── initramfs-0-rescue-304ba91566574244a4ed6752152ec067.img
├── initramfs-3.10.0-1062.el7.x86_64.img
├── symvers-3.10.0-1062.el7.x86_64.gz
├── System.map-3.10.0-1062.el7.x86_64
├── vmlinuz-0-rescue-304ba91566574244a4ed6752152ec067*
└── vmlinuz-3.10.0-1062.el7.x86_64*

3 directories, 7 files



2. 过滤以斜线结尾的所有内容
[root@testdb62 ~]# tree -L 1 -F  /boot/ | grep /$
/boot/
├── efi/
├── grub/
├── grub2/
 
 

3. 使用 -d 参数只显示目录树,这样可轻松过滤内容中的目录
[root@testdb62 ~]# tree -L 1 -d /boot/
/boot/
├── efi
├── grub
└── grub2

3 directories