Linux Tree 命令

2025年3月17日 | 阅读 7 分钟

在 Linux 中,树 (tree) 被定义为一个递归目录列表程序,它会生成一个深度缩进的文件列表。在不带任何参数的情况下,tree 命令会列出当前目录下的文件。当给出目录参数时,tree 命令会依次列出给定目录中找到的每个文件。当每个目录和文件的列表完成后,tree 命令将返回列出的目录和文件的总数。提供了各种选项来修改输出中使用的字符以及使用颜色。

语法

选项

标签描述
--help输出详细的用法列表。
--version输出 tree 的版本。
-a打印所有文件。默认情况下,tree 不打印隐藏文件(即以点 "." 开头的文件)。在任何情况下,tree 都不打印文件系统构造 "." (当前目录) 和 ".." (上一个目录)。
-d-d 选项用于列出目录。
-f为每个文件打印完整的路径前缀。
-i-i 选项会创建一个树状结构,但不会打印缩进线。如果与 -f 选项一起使用,则很有用。
-l跟随目录的符号链接,如同它们是目录一样。避免那些会导致递归循环的链接。
-x停留在当前文件系统,类似于 fins -xdev。
-P 模式只列出与通配符模式匹配的文件。我们也应该使用 -a 选项并考虑那些以 "." 开头的文件进行匹配。有多种有效的通配符运算符,例如 '?' (任何单个字符),'*' (任何零个或多个字符),'[…]' (括号中列出的任何单个字符 (可选 - (连字符) 可用于字符范围:例如 [A-Z]),以及 '[^...}' (括号中未列出任何单个字符),以及 '|' 分隔备用模式。
-l 模式此选项不会列出与通配符模式匹配的文件。
-prune从输出树中修剪空目录,这在与 -P 或 -l 结合使用时很有用。
-filelimit #不要向下进入包含超过 # 个条目的目录。
-timefmt 格式根据使用 strftime 语法的格式字符串打印 (隐含 -D) 并格式化数据。
-noreport在 tree 列表的末尾省略文件和目录的报告打印。
-p打印所有文件的保护信息。
-s-s 选项将打印所有文件的大小以及文件名。
-u打印文件的 UID # 或用户名(如果没有用户名)。
-g如果文件没有组名,则打印 GID # 或组名。
D此选项用于打印所列文件的最后修改时间。
-inodes打印目录或文件的 inode 号。
-device打印包含目录或文件的设备号。
-F为目录追加 '/',为套接字文件追加 '='。为可执行文件追加 '*',为 FIFO 追加 '|',类似于 ls -F。
-q此选项打印文件名中的不可打印字符,例如用问号代替默认的插入符号表示法。
-N此选项按原样打印不可打印字符,而不是默认的插入符号表示法。
-r此选项将按反向字母顺序排序结果。
-t根据最后修改时间排序结果,而不是字母顺序。
dirs目录在文件之前列出目录。
-n始终关闭颜色化,这会被 -C 选项覆盖。
-C如果 LS_COLORS 环境变量未设置,则使用创建的默认颜色始终打开颜色化。这有助于为管道着色输出。
-A在打印缩进线时,启用 ANSI 线图形 hack。
-S打开 ANSI 线图形 (这在使用 Linux 控制台模式字体时很有用)。现在此选项等同于 '-charset=IBM437',并将最终被弃用。
-L 级别目录树的最大显示深度。
-R递归地向下遍历树的每个级别目录 (检查 -L 选项),并在每个目录中再次执行 tree 命令,添加 '-o 00Tree.html' 等新选项。
-H baseHREF-H 选项负责开启 HTML 输出,其中包含 HTTP 引用。这对于 ftp 站点很有用。如果使用 HTML 输出,baseHREF 提供基本的 ftp 位置。这意味着本地目录可以是 '/local/ftp/pub',但它应该被引用为 'ftp://hostname.oganization.domain/pub' (baseHREF 必须是 'ftp://hostname.organize.domain')。提示:使用此选项时,不要使用 ANSI 线,并且在此目录列表中,不要给出超过一个目录。我们可以通过 CSS 样式表使用颜色,在此选项之外使用 -C 选项来着色输出。
-T 标题在 HTML 输出模式下,设置标题和 H1 标题字符串。
-charset 字符集使用此选项,在 HTML 和线条图中使用时设置字符集。
-nolinks在 HTML 输出中,-nolinks 用于关闭超链接。
-o 文件名此选项将输出发送到指定的文件名。

安装 Tree 命令

我们必须安装 tree 命令,因为默认情况下它没有安装。要在 RHEL/CentOS/Fedora Linux 上安装 tree 命令,我们必须在终端中键入以下命令:

如果我们要为 Debian / Ubuntu Linux / Mint 安装 tree 命令,那么我们必须键入以下命令:

如果要为 Apple OS X 安装 tree 命令,请键入:

如何使用 Tree 命令

Tree 是一个存在于 Unix 和类 Unix 系统上的程序。它是一个递归目录列表程序,可生成深度缩进的文件列表。

在不带任何参数的情况下,tree 命令会列出当前目录下的文件。当给出目录参数时,tree 命令会依次列出给定目录中找到的每个文件和目录。当文件和目录列表完成后,tree 命令将返回列出的目录和文件的总数。

让我们看一些 tree 命令的示例,这些示例将帮助您理解 tree 命令。

基本 Tree 输出

使用 tree 命令最通用的方法是:


Linux Tree Command

当我们在终端上键入上述命令时,输出将显示当前目录的树状结构,显示所有文件、文件夹和子文件夹。

显示特定目录的内容

如果我们想列出特定目录的文件和子文件夹,而不是当前目录的文件和子文件夹,那么我们可以通过以下语法确定路径或目录名称:

示例

如果我们想列出名为 pictures 的目录中的所有文件和子文件夹,那么我们必须输入以下命令:


Linux Tree Command

使用 Tree 显示隐藏文件和其他文件

在 tree 命令中,隐藏文件夹和文件的列表不会在 ubuntu 中显示。虽然,我们可以使用 'a' 标志来列出它们,如下所示:


Linux Tree Command

在 tree 命令中,以 '.' 开头的文件夹和文件是隐藏的文件夹和文件。

通过 Tree 只显示目录列表

我们可以使用 'd' 标志来查看目录列表,而不是其下层文件。为了仅通过 tree 显示目录列表,我们必须在终端上输入以下命令:

语法


Linux Tree Command

使用 Tree 显示文件和文件夹的完整路径前缀

使用 'f' 标志,我们可以自定义 tree 标志,以便为每个文件夹和文件列表显示完整的路径作为前缀。

语法


Linux Tree Command

这主要在我们需要知道什么存在于哪里时很有用。

使用 Tree 显示文件和文件夹的大小

使用 's' 标志的 tree 命令,可以以字节为单位打印目录中所有文件夹和文件的大小。

语法


Linux Tree Command

借助 's' 标志,我们可以检查哪些内存项占用了我们系统上的更多空间,并摆脱不必要的项。

显示 Tree 中文件和文件夹的读写权限

如果我们想查看列出的文件夹和文件上的删除、读取和写入权限,那么我们可以使用 'p' 标志。

语法


Linux Tree Command

因此,在对文件和文件夹执行操作之前,我们可以先查看并编辑某个项目上存在的权限。

通过 Tree 列出直到某个级别/深度的文件夹内容

而不是列出我们目录的每个内容,我们可以配置 tree 命令来将树显示到特定级别或路径。例如,在 tree 命令中,级别 1 只能显示给定文件夹的列表,而不是其任何子文件夹。

语法

示例

此命令将仅显示当前目录的子目录 (使用 -d 标志),而不是额外的展开树。

Linux Tree Command

Tree 帮助

tree 命令比我们定义的要有用得多。我们可以使用 tree 命令再次找到该命令,如下所示:


Linux Tree Command
下一个主题Wine Linux