如何在Linux中查看目录树结构

时间:2020-03-21 11:48:39  来源:igfitidea点击:

今天,我们将学习如何使用Tree命令查看目录结构。
此命令将以树状格式显示目录的内容。
我们可能想知道为什么地球上有人会使用此命令,而我们已经有了ls命令来列出目录的内容。
与ls命令不同,Tree命令是一个递归目录列表程序,该程序生成深度缩进的文件列表。
在类Unix系统中查找包含许多子目录的目录非常有用。

安装tree

大多数Linux发行版的默认存储库中都提供Tree命令。
因此,可以从发行版的默认程序包管理器中进行安装,如下所示。

在Arch Linux及其衍生版本上:

$sudo pacman -S tree

在RHEL,CentOS,Fedora上:

$sudo yum install tree

或者,

$sudo dnf install tree

在SUSE/openSUSE上:

$sudo zypper install tree

在Debian,Linux Mint,Ubuntu上:

$sudo apt-get install tree

我们已经安装了树实用程序。
现在,让我们看一些实际的例子。

如果运行不带任何参数的tree命令,tree命令将以树状格式显示当前工作目录的所有内容。

$tree

输出示例:

列出所有找到的文件/目录后,tree返回列出的文件和/或者目录总数。
从上面的输出中可以看到,当前目录包含3321个子目录和40023个文件。

要以树状格式列出特定目录的文件,例如运行/etc,请运行:

$tree /etc/

输出示例:

默认情况下,Tree不会列出隐藏文件。
如果要列出隐藏文件,请使用-a参数,如下所示。

$tree -a /etc/

输出示例:

现在,检查上面的输出。
目录和文件的总数高于上一个输出。
这是因为这一次树命令列出了所有目录和文件,包括隐藏文件。

要以彩色格式查看目录结构,请使用-C参数。

$tree -C /etc/

输出示例:

你注意到了吗?
现在,tree命令以不同的颜色列出目录和文件。
这将有助于轻松区分目录和文件。

我们可能已经注意到,以上所有命令均列出了子目录和文件。
我们也可以使用-d参数仅列出目录,如下所示。

$tree -d /etc/

输出示例:

我们还可以使用以下命令逐行显示目录列表:

$tree -d /etc/| less

按ENTER键浏览输出。

默认情况下,Tree命令将列出所有子目录和主目录中的文件。
要限制深度或者递归级别,请使用如下所示的-L参数。

$tree -L 2 /etc

在此,L表示目录树的最大显示深度。

有关更多详细信息,请参见手册页。

$man tree