Linux 初学者“tree 命令”使用示例
Tree是一个小型的跨平台命令行程序,用于以树状格式递归列出或显示目录内容。它输出每个子目录中的目录路径和文件以及子目录和文件总数的摘要。
另请参阅:dutree – 一款以彩色输出形式分析磁盘使用情况的 CLI 工具
该树程序适用于 Unix 和类 Unix 系统(如 Linux)以及 DOS、Windows 和许多其他操作系统。它具有各种输出操作选项,从文件选项、排序选项到图形选项,并支持 XML、JSON 和 HTML 格式的输出。
在这篇短文中,我们将通过示例展示如何使用tree命令以递归方式列出 Linux 系统上目录的内容。
了解 tree 命令使用示例
所有(如果不是大多数)Linux 发行版上都提供 tree命令,但是,如果您没有默认安装它,请使用默认包管理器按照所示进行安装。
# yum install tree #RHEL/CentOS 7 # dnf install tree #Fedora 22+ and /RHEL/CentOS 8 $ sudo apt install tree #Ubuntu/Debian # sudo zypper in tree #openSUSE
安装后,您可以进一步通过下面的示例了解树命令的用法。
1.要以树状格式列出目录内容,请导航到所需目录并运行tree命令,不带任何选项或参数,如下所示。请记住调用 sudo 以在需要 root 用户访问权限的目录中运行树。
# tree OR $ sudo tree
它将以递归方式显示工作目录的内容,显示子目录和文件,以及子目录和文件总数的摘要。您可以使用标志启用隐藏文件的打印-a
。
$ sudo tree -a
2.要列出目录内容以及每个子目录和文件的完整路径前缀,请使用如下-f
所示。
$ sudo tree -f
3.您还可以使用选项指示 tree 仅打印子目录减去其中的文件-d
。如果与选项一起使用-f
,tree 将打印完整的目录路径,如下所示。
$ sudo tree -d OR $ sudo tree -df
4.您可以使用选项指定目录树的最大显示深度-L
。例如,如果您希望深度为2,请运行以下命令。
$ sudo tree -f -L 2
这是将目录树的最大显示深度设置为3 的另一个示例。
$ sudo tree -f -L 3
5.要仅显示与通配符模式匹配的文件,请使用标志-P
并指定您的模式。在此示例中,该命令将仅列出匹配的文件cata*
,因此将列出Catalina.sh、catalina.bat等文件。
$ sudo tree -f -P cata*
6.您还可以通过添加选项告诉树从输出中修剪空目录--prune
,如图所示。
$ sudo tree -f --prune
7. tree 还支持一些有用的文件选项,例如-p
以类似于 ls -l 命令的方式打印每个文件的文件类型和权限。
$ sudo tree -f -p
8.此外,要打印每个文件的用户名(如果没有用户名,则打印 UID-u
),请使用选项, 选项-g
打印组名(如果没有组名,则打印GID-p
)。您可以结合使用、-u
和-g
选项来执行类似于 ls -l 命令的长列表。
$ sudo tree -f -pug
9.您还可以使用选项打印每个文件的大小(以字节为单位)以及名称-s
。要以更易于阅读的格式打印每个文件的大小,请使用标志-h
并指定千字节 (K)、兆字节 (M)、千兆字节 (G)、太字节 (T) 等的大小字母。
$ sudo tree -f -s OR $ sudo tree -f -h
10.要显示每个子目录或文件的最后修改日期,请使用-D
以下选项。
$ sudo tree -f -pug -h -D
11.另一个有用的选项是--du
,它将每个子目录的大小报告为其所有文件和子目录(及其文件等)的大小的累积。
$ sudo tree -f --du
12.最后但同样重要的一点是,您可以使用该选项将树的输出发送或重定向到文件名,以供稍后分析-o
。
$ sudo tree -o direc_tree.txt
这就是tree 命令的全部内容,运行man tree了解更多用法和选项。如果您有任何问题或想法要分享,请使用下面的反馈表与我们联系。