
Linux 中的tree命令和示例
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 |

这里的 ‘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了解更多用法和选项。
本文是原创文章,采用CC BY-NC-SA 4.0协议,完整转载请注明来自Tony's Blog