Linux tree命令介绍
tree
是一个递归的目录列表程序,它可以生成一份文件和目录的深度缩进列表。无论何时你需要查看目录和子目录的结构,tree
命令就是你需要的工具。tree
命令还能够列出仅目录,隐藏文件,包括文件路径,根据级别列出文件和目录,列出具有权限的文件,并获取每个文件的文件大小和修改情况。
Linux tree命令适用的Linux版本
tree
命令几乎在所有的Linux发行版中都可以使用,包括 Debian、Ubuntu、Alpine、Arch Linux、Kali Linux、RedHat/CentOS、Fedora 和 Raspbian。在一些默认没有安装tree
的Linux发行版中,我们可以通过包管理器来进行安装。
在Debian,Ubuntu 或 Raspbian上,你可以使用如下的命令进行安装:
[linux@bashcommandnotfound.cn ~]$ sudo apt-get install tree
对于使用Alpine的用户,可以使用apk进行安装:
[linux@bashcommandnotfound.cn ~]$ sudo apk add tree
如果你在使用RedHat(RHEL)、CentOS 7、或者 Fedora,你可以使用yum进行安装:
[linux@bashcommandnotfound.cn ~]$ sudo yum install tree
对于CentOS 8+或者其他使用了dnf工具的版本,可以使用如下命令安装:
[linux@bashcommandnotfound.cn ~]$ sudo dnf install tree
在Arch Linux 或者 Kali Linux上,你需要使用pacman进行安装:
[linux@bashcommandnotfound.cn ~]$ sudo pacman -S tree
Linux tree命令的基本语法
tree
命令的基本语法如下:
tree [参数]... [目录]...
在这个语法中,“[参数]…” 表示可以接受一或多个可选参数, “[目录]…” 表示可以接受一或多个目录名。如果没有指定目录名,那么就会使用当前所在目录。
Linux tree命令的常用选项或参数说明
以下是tree
命令中一些常用选项的说明:
选项 | 详细说明 |
---|---|
-a | 显示所有文件和目录。 |
-d | 仅显示目录。 |
-f | 在每个文件或目录前,都显示完整的相对路径。 |
-i | 不显示缩进和线条,只显示文件和目录的名称。 |
-l | 按照文件和目录的修改时间进行排序,最近的在前面。 |
-r | 将文件或目录的显示顺序反转。 |
-s | 显示文件和目录的大小。 |
-x | 完全地展开目录树,包括那些符号链接到其他部分的目录。 |
Linux tree命令实例详解
实例1:查看当前目录的结构
使用 tree
命令而不带任何的参数,能够输出当前目录(也就是你执行这个命令的位置)的结构。
[linux@bashcommandnotfound.cn ~]$ tree
实例2:显示所有文件和目录
如果你想让 tree
命令显示所有的文件和目录,包括隐藏文件,你可以使用-a
选项。
[linux@bashcommandnotfound.cn ~]$ tree -a
实例3:只列出目录
如果你只对目录的层级结构感兴趣,而不想在输出中看到任何文件,你可以使用 -d
选项。
[linux@bashcommandnotfound.cn ~]$ tree -d
实例4:显示文件和目录的大小
tree
命令默认并不会显示文件或者目录的大小,但是通过 -s
选项,你就能让 tree
在每个文件名和目录名的后面显示它们的大小。
[linux@bashcommandnotfound.cn ~]$ tree -s
实例5:根据文件和目录的修改时间排序
如果你想让 tree
命令根据文件和目录的修改时间进行排序,而不是根据名字进行排序,那么你可以使用 -t
选项。
[linux@bashcommandnotfound.cn ~]$ tree -t
实例6:指定显示层级深度
在某些情况下,你可能只对某一层级的目录结构感兴趣,这时候你可以使用 -L
选项来指定 tree
只显示到某一层级。例如,下面的命令让 tree
只显示到三层目录:
[linux@bashcommandnotfound.cn ~]$ tree -L 3
实例7:只显示特定类型的文件
如果你只想列出特定类型的文件,那么你可以使用-P
选项来指定一个模式。例如,下面的命令只会显示所有的.txt
文件及其所在的目录:
[linux@bashcommandnotfound.cn ~]$ tree -P "*.txt"
实例8:排除特定类型的文件
相反,如果你想排除特定类型的文件,那么你可以使用-I
选项来指定一个模式。例如,下面的命令将忽视所有的.txt
文件:
[linux@bashcommandnotfound.cn ~]$ tree -I "*.txt"
实例9:将结果输出到文件
tree
命令可以通过-o
参数将结果输出到一个文件中,比如:
[linux@bashcommandnotfound.cn ~]$ tree -o output.txt
此命令将当前目录结构输出到名为"output.txt"的文件中。
实例10:显示文件和目录的权限
你可以使用-p
选项让 tree
在每个文件名和目录名的前面显示它们的权限,格式与 ls -l
命令相同。
[linux@bashcommandnotfound.cn ~]$ tree -p
实例11:根据大小排序
-S
参数可以使文件和目录按大小排序,如下所示:
[linux@bashcommandnotfound.cn ~]$ tree -S
实例12:包含目录中的空目录
使用 -E
选项会使 tree
在列出目录时包含空目录。例如:
[linux@bashcommandnotfound.cn ~]$ tree -E
实例13:不展开目录,只显示顶层的内容
使用 -n
选项可以让 tree
不展开目录,只显示顶层的内容。例如:
[linux@bashcommandnotfound.cn ~]$ tree -n
实例14:忽略特定的目录
通过 -I
参数,我们可以指定要忽略哪些目录。例如,下面的命令将忽略名为 “temp” 的目录:
[linux@bashcommandnotfound.cn ~]$ tree -I "temp"
实例15:按最后修改时间排序
使用 -D
选项可以使 tree
按照最后修改时间排序:
[linux@bashcommandnotfound.cn ~]$ tree -D
实例16:添加文件和目录的颜色标记
-C
参数使 tree
命令添加颜色以区分文件和目录:
[linux@bashcommandnotfound.cn ~]$ tree -C
Linux tree命令的注意事项
- 你无法使用
tree
命令来查看远程主机的目录结构,因为tree
命令只能查询本地磁盘上的文件和目录。 - 尝试查看权限不足的目录,会提示 “Permission denied” 错误。
- 如果你在一个大型目录(比如
/
目录)中运行tree
命令可能会需要很长时间,并且输出会非常的长。 - 注意:如果你在尝试使用tree命令并得到了bash: tree: command not found 的提示,那么你可以参考上面的步骤进行安装。
Linux tree相关命令
- ls命令:用于列出目录中的内容
- find命令:用于在文件系统中查找文件
- cd命令:用于改变当前的工作目录
- mkdir命令:用于创建新的目录
- rmdir命令:用于删除空目录
- touch命令:用于创建新的空文件
- rm命令:用于删除文件或目录
- cp命令:用于复制文件或目录
- mv命令:用于移动或重命名文件或目录
- ln命令:用于创建文件或目录的链接