在Linux系统中,命令tree用于显示列出指定目录下的所有内容,包括文件、子目录及子目录中的文件和目录。
语法:
tree [选项] [目录]
参数说明:
-
-a 显示所有文件,包括隐藏文件
-
-d 只显示目录
-
-f 显示每个文件的绝对路径
-
-i 不显示树枝,常与 -f 参数配合使用
-
-L level 遍历目录的最大层数,level为大于0的正整数
案例:
首先,如果你的linux是最小化安装的,那么系统中可能没有安装tree命令,此时就需要用yum来安装
[root@master test]# yum install tree
Loaded plugins: fastestmirror
No such command: insatll. Please use /usr/bin/yum --help
[root@master test]#
[root@master test]# yum install tree
Loaded plugins: fastestmirror
Determining fastest mirrors
* base: mirrors.163.com
* extras: mirrors.163.com
* updates: mirrors.163.com
base | 3.6 kB 00:00:00
extras | 2.9 kB 00:00:00
mysql-connectors-community | 2.5 kB 00:00:00
mysql-tools-community | 2.5 kB 00:00:00
mysql57-community | 2.5 kB 00:00:00
updates | 2.9 kB 00:00:00
(1/2): extras/7/x86_64/primary_db | 206 kB 00:00:00
(2/2): updates/7/x86_64/primary_db | 3.8 MB 00:00:01
Resolving Dependencies
--> Running transaction check
---> Package tree.x86_64 0:1.6.0-10.el7 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
===========================================================================================================================
Package Arch Version Repository Size
===========================================================================================================================
Installing:
tree x86_64 1.6.0-10.el7 base 46 k
Transaction Summary
===========================================================================================================================
Install 1 Package
Total download size: 46 k
Installed size: 87 k
Is this ok [y/d/N]: y # <-------此处输入 y 确认安装
Downloading packages:
tree-1.6.0-10.el7.x86_64.rpm | 46 kB 00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : tree-1.6.0-10.el7.x86_64 1/1
Verifying : tree-1.6.0-10.el7.x86_64 1/1
Installed:
tree.x86_64 0:1.6.0-10.el7
Complete!
[root@master test]#
可以通过下述命令查看是否已安装tree
[root@master test]# rpm -qa tree
tree-1.6.0-10.el7.x86_64 # <------已安装
[root@master test]#
tree不带任何参数默认从当前目录开始展开树
[root@master test]# tree
.
├── all.zip
└── data
├── Hello.java
├── test01
├── test02
└── test.py
3 directories, 3 files
[root@master test]#
注:如果目录树中有因字符集导致的乱码问题,例如目录树中出现问号等,此类问题与系统字符集编码和我们使用的客户端(我的是Xshell)的字符集编码有关,有两种解决思路:
1、系统字符集编码问题--修改系统字符集编码
[root@master test]# echo $LANG # 查看当前系统编码
en_US.UTF-8
如果查询结果不是en_US.UTF-8 用下面命令修改
[root@master test]# LANG=en_US.UTF-8
2、修改我们连接linxu的客户端显示字符集编码(百度)
以树形结构展示目录下所有内容,包括隐藏文件
[root@master test]# tree -a
.
├── all.zip
├── data
│ ├── Hello.java
│ ├── test01
│ ├── test02
│ └── test.py
└── .ha.py # <----该文件是隐藏文件
3 directories, 4 files
[root@master test]#
只列出树根目录下的指定层数目录(仔细对比)
[root@master test]# tree
.
├── all.zip
└── data
├── Hello.java
├── test01
├── test02
└── test.py
3 directories, 3 files
[root@master test]# tree -L 1 # -L后面跟数字表示只查看几层目录
.
├── all.zip
└── data
1 directory, 1 file
[root@master test]#
只显示目录不显示文件
[root@master test]# tree -d
.
└── data
├── test01
└── test02
3 directories
[root@master test]#
显示树形目录及路径
[root@master test]# tree -f
.
├── ./all.zip
└── ./data
├── ./data/Hello.java
├── ./data/test01
├── ./data/test02
└── ./data/test.py
3 directories, 3 files
[root@master test]#
不显示树枝部分
[root@master test]# tree -i # 不显示树枝,感觉tree失去了意义
.
all.zip
data
Hello.java
test01
test02
test.py
3 directories, 3 files
[root@master test]# tree -if # 常用
.
./all.zip
./data
./data/Hello.java
./data/test01
./data/test02
./data/test.py
3 directories, 3 files
[root@master test]#
使用tree区分文件和目录的方法
[root@master test]# tree -F # 使用-F 只有目录后会显示/ 文件不显示
.
├── all.zip
└── data/
├── Hello.java
├── test01/
├── test02/
└── test.py
3 directories, 3 files
[root@master test]#