Linux 中的tree命令和示例

在 UNIX/LINUX 系统以及 MS-DOS 和 Microsoft Windows 中,tree 是一个递归目录列表程序,用于生成深度缩进的文件列表。在没有参数的情况下,树列出当前目录中的文件。当给出目录参数时,树会依次列出在给定目录中找到的所有文件或目录。

它将目录显示为 Braches,将文件显示为 leaves,这使用户可以轻松地可视化给定路径中文件和目录的组织。

在 Linux 中安装tree命令

默认情况下,Linux 并没有安装 tree 命令。输入以下命令进行安装

在 RHEL / CentOS / Fedora Linux 中安装

版本小于或等于 Rhel8

1
sudo yum install tree 

请注意,在高于 RHEL 8 的版本中,我们需要 dnf 命令。

例如,在 RHEL 9 中的安装中。

1
sudo dnf install tree

在 Debian / Mint / Ubuntu Linux 中安装

1
sudo apt-get install tree 

在 Apple OS X 中安装

1
brew install tree

Linux 中 Tree 命令的基本语法

1
tree [options]
1
$ sudo tree -a

List Directory Content in Tree Format

这里的 ‘tree’ 命令将从当前目录开始输出目录结构。

Linux 中“tree”命令中可用的选项

Options Description
**–help ** 帮助
–version 输出tree的版本。
-a or –all 包括隐藏文件和目录。
-d or `–dirs-only 仅列出目录。
-f or –full-path 打印每个文件的完整路径前缀。
-i or –ignore-case 对文件名进行排序时忽略大小写。
-x 仅保留在当前文件系统上,就像 find -xdev 一样。
-I 不要列出与通配符模式匹配的文件。
-p or –prune tree中省略指定的目录。
**–filelimit ** 不要下降包含超过 # 个条目的目录。
-t 按上次修改时间对输出进行排序,而不是按字母顺序排序。
**–noreport ** 省略树列表末尾的文件和目录报告的打印。
-s 打印每个文件的大小以及名称。
-u 打印文件的用户名,如果没有可用的用户名,则打印 UID #。
-g 打印文件的组名称,如果没有可用的组名,则打印 GID #
-D 打印所列文件的上次修改时间的日期。
–inodes –inode 打印文件或目录的 inode 编号
–device 打印文件或目录所属的设备编号
-F 根据 ls -F,为目录附加一个“/”,为套接字文件附加一个“=”,为可执行文件附加一个“*”,为 FIFO 附加一个“|”
-q 将文件名中的不可打印字符打印为问号,而不是默认的胡萝卜表示法。
-N 按原样打印不可打印的字符,而不是默认的胡萝卜符号。
-r 按相反的字母顺序对输出进行排序。
–dirsfirst 在文件之前列出目录。
-n 始终关闭着色,由 -C 选项覆盖。
-C 如果未设置LS_COLORS环境变量,则始终使用内置颜色默认值打开着色。可用于为管道的输出着色。
-A 打印缩进线时打开 ANSI 线条图形 hack。
-S 打开 ASCII 线条图形(在使用 linux 控制台模式字体时很有用)。此选项现在等同于 ‘–charset=IBM437’,最终将被弃用。
**-L level ** 目录树的最大显示深度。
-R 递归地向下交叉树的每个级别目录(参见 -L 选项),并在每个目录上再次执行树,添加“-o 00Tree.html”作为新选项。
-H baseHREF 打开 HTML 输出,包括 HTTP 引用。对 ftp 站点很有用。baseHREF 在使用 HTML 输出时提供基本 ftp 位置。也就是说,本地目录可以是 ‘/local/ftp/pub’,但必须引用为 ‘ftp://host-name.organization.domain/pub'(baseHREF 应该是 ‘ftp://hostname.organization.domain')。提示:不要将 ANSI 行与此选项一起使用,并且不要在目录列表中提供多个目录。如果要通过 CSS 样式表使用颜色,请在此选项之外使用 -C 选项来强制输出颜色。
**-T title ** 在 HTML 输出模式下设置标题和 H1 标头字符串。
**–charset charset ** 设置输出 HTML 和线条绘制时要使用的字符集。
**–nolinks ** 关闭 HTML 输出中的超链接。
**-o file name ** 将输出发送到文件名。

Examples 例子

显示目录的树层次结构

1
tree -a ./GFG 

列出输入模式的文件

1
tree -P sample* . 

列出那些具有更多“N”个文件/目录的目录

1
tree --filelimit 3 ./GFG 

列出具有权限的文件。

1
tree -p ./GFG 

打印文件或目录所属的设备编号。

1
tree --device ./GFG 

按上次修改时间打印输出,而不是按字母顺序打印输出。

1
tree -t ./GFG 

结论

在本文中,我们研究了 Linux 中的“树”命令,它是可视化目录结构的强大工具。它还允许用户显示文件和目录的层次结构,包括隐藏的文件和目录,根据各种标准对输出进行排序,它还使用模式过滤文件并生成 HTML 输出。这就是tree 命令的全部内容,运行man tree了解更多用法和选项。