帮助中心

产品使用与售后服务帮助

当前位置:首页 > 帮助中心> 如何限制递归文件列表的tree命令深度

如何限制递归文件列表的tree命令深度

发布时间:2021-02-23 09:56 来源:A5数据

通常,ls命令在Linux中用来显示文件和文件夹。它是GNU/Linux中的一个内置命令。但是,它也有不足之处,比如,它没有递归查看目录的选项。

今天我们要向大家介绍一个新的命令 "tree",它用于递归文件列表,以及我们如何在调用它时限制显示文件结构的深度。

在Linux中安装Tree命令

tree命令在Linux发行版中默认是不可用的,可以在Debian和基于RedHat的发行版中安装。

$ sudo apt install tree(在Debian, Ubuntu & Mint上)

$ sudo yum install tree(在RedHat、CentOS和Fedora上)

而在基于Arch的发行版中,有

$ sudo pacman -Sy tree [on Arch and Manjaro Linux]

通过调用来验证它是否已经安装。

$ tree -v

Linux中的递归目录列表

tree 命令以更整洁的格式显示目录列表,子目录有适当的缩进,文件和文件夹有不同的颜色代码。调用它时不需要任何参数,就可以得到一个文件夹下的整个树形结构。

$ tree

同样,您也可以传递一个目录路径作为参数,以显示该目录下的树形结构,而不是当前目录。

$ tree /etc/pki

你也可以用多个目录路径参数来调用它。从前面的两张截图中可以看出,该命令会到目录树结构的最底层,到没有子目录的地方,然后显示所有的内容。

限制递归文件列表的深度

然而,正如一开始所讨论的那样,当使用在一个有许多深度较大的子目录的文件夹上时,这显然变得很棘手。要限制递归文件列表的深度,可以使用-L参数,如图所示。

$ tree -L Depth Folder_Path

这里'Depth'是一个正整数,表示要显示的文件夹结构的最大深度。

$ tree -L 2 /snap

它将显示限制在传给它的目录路径下的两层,即'/snap/'。如果没有这个参数,它将创建一个巨大的显示,因为'snap'是一个系统文件夹,运行得非常深,包含大量的文件。

为目录列表设置不同的深度限制

同样,你也可以调用 tree,同时传递多个目录路径,每个路径的深度限制不同。

$ tree -L 2 /home -L 3 /etc/apt/apt.conf.d

在这篇文章中,我们学习了tree命令,以及如何在显示的文件结构上限制其深度。