Linux

命令tree用于显示列出指定目录下的所有内容

2021-01-27 15:06:47 卿卿小孩 25

在Linux系统中,命令tree用于显示列出指定目录下的所有内容,包括文件、子目录及子目录中的文件和目录。

语法:

tree [选项] [目录]

参数说明:

  • -a 显示所有文件,包括隐藏文件

  • -d 只显示目录

  • -f 显示每个文件的绝对路径

  • -i 不显示树枝,常与 -f 参数配合使用

  • -L level 遍历目录的最大层数,level为大于0的正整数

案例:

首先,如果你的linux是最小化安装的,那么系统中可能没有安装tree命令,此时就需要用yum来安装

[root@qingqing ~]# tree
-bash: tree: command not found
[root@qingqing ~]# yum install tree
Loaded plugins: fastestmirror
base                                                     | 3.6 kB     00:00
epel                                                     | 4.7 kB     00:00
extras                                                   | 2.9 kB     00:00
updates                                                  | 2.9 kB     00:00
(1/7): epel/x86_64/group_gz                                |  95 kB   00:00
(2/7): base/7/x86_64/group_gz                              | 153 kB   00:00
(3/7): epel/x86_64/updateinfo                              | 1.0 MB   00:00
(4/7): extras/7/x86_64/primary_db                          | 222 kB   00:00
(5/7): updates/7/x86_64/primary_db                         | 4.7 MB   00:00
(6/7): base/7/x86_64/primary_db                            | 6.1 MB   00:00
(7/7): epel/x86_64/primary_db                              | 6.9 MB   00:00
Determining fastest mirrors
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
Downloading packages:
tree-1.6.0-10.el7.x86_64.rpm                               |  46 kB   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@qingqing ~]#

可以通过下述命令查看是否已安装tree

[root@qingqing ~]# rpm -qa tree
tree-1.6.0-10.el7.x86_64
[root@qingqing ~]#

tree不带任何参数默认从当前目录开始展开树(我的当前目录没有内容,所以为空)

[root@qingqing ~]# tree
.

0 directories, 0 files
[root@qingqing ~]#

注:如果目录树中有因字符集导致的乱码问题,例如目录树中出现问号等,此类问题与系统字符集编码和我们使用的客户端(我的是Xshell)的字符集编码有关,有两种解决思路:

1、系统字符集编码问题--修改系统字符集编码

[root@qingqing ~]# echo $LANG
en_US.UTF-8
[root@qingqing ~]#

如果查询结果不是en_US.UTF-8 用下面命令修改

[root@qingqing ~]# LANG=en_US.UTF-8

2、修改连接linxu的客户端显示字符集编码(百度)


tree常用命令

以树形结构展示目录下所有内容,包括隐藏文件

[root@qingqing ~]# tree -a

只列出树根目录下的指定层数目录(-L后面跟数字表示只查看几层目录)

[root@qingqing ~]# tree -L 1

只显示目录不显示文件

[root@qingqing ~]# tree -d

显示树形目录及路径

[root@qingqing ~]# tree -f

不显示树枝部分(常-if组合使用)

[root@qingqing ~]# tree -i
[root@qingqing ~]# tree -if

使用tree区分文件和目录的方法(# 使用-F 目录后会显示/   文件不显示/)

[root@qingqing ~]# tree -F