Linux tree命令教程:查看和导航目录结构(附案例详解和注意事项)

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命令:用于创建文件或目录的链接

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/638913.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Python】torch.no_grad()函数详解和示例

torch.no_grad() 是 PyTorch 中的一个上下文管理器,用于在进入该上下文时禁用梯度计算。这在你只关心评估模型,而不是训练模型时非常有用,因为它可以显著减少内存使用并加速计算。 当你在 torch.no_grad() 上下文管理器中执行张量操作时&…

Unity中实现捏脸系统

前言 目前市面上常见的捏脸一般是基于BlendShapes和控制骨骼点坐标两种方案实现的。后者能够控制的精细程度更高,同时使用BlendShapes来控制表情。 控制骨骼点坐标 比如找到控制鼻子的骨骼节点修改localScale缩放,调节鼻子大小。 BlendShapes控制表…

【数学笔记】集合及简要逻辑

集合 基础简要逻辑集合间的关系与运算 基础 集合定义:把一些能够确定的不同对象组成的整体叫做一个集合,每个对象叫做元素。集合记法:一般用大写字母 A , B , C . . . . . . A,B,C...... A,B,C......表示集合,小写字母 a , b ,…

分布式锁实现(mysql,以及redis)以及分布式的概念

道生一,一生二,二生三,三生万物 我旁边的一位老哥跟我说,你知道分布式是是用来干什么的嘛?一句话给我干懵了,我能隐含知道,大概是用来做分压处理的,并增加系统稳定性的。但是具体如…

特征融合篇 | YOLOv8 引入长颈特征融合网络 Giraffe FPN

在本报告中,我们介绍了一种名为DAMO-YOLO的快速而准确的目标检测方法,其性能优于现有的YOLO系列。DAMO-YOLO是在YOLO的基础上通过引入一些新技术而扩展的,这些技术包括神经架构搜索(NAS)、高效的重参数化广义FPN(RepGFPN)、带有AlignedOTA标签分配的轻量级头部以及蒸馏增…

android usb2.0 协议基础(1)

1-USB 基本知识 USB的重要关键概念: 1、 端点:位于USB设备或主机上的一个数据缓冲区,用来存放和发送USB的各种数据,每一个端点都有惟一的确定地址,有不同的传输特性(如输入端点、输出端点、配置端点、批量传输端点) 2…

ORB-SLAM 论文阅读

论文链接 ORB-SLAM 0. Abstract 本文提出了 ORB-SLAM,一种基于特征的单目同步定位和建图 (SLAM) 系统该系统对严重的运动杂波具有鲁棒性,允许宽基线环路闭合和重新定位,并包括全自动初始化选择重建的点和关键帧的适者生存策略具有出色的鲁棒…

Android 基础技术——View 的宽高

笔者希望做一个系列,整理 Android 基础技术,本章是关于 View 的宽高 Activity Resume 的时候设置或者获取view的宽高是否有效? 回答:不确定。 首次 onResume 无效,二次 onResume 就有效了。 回顾「Android 基础技术——addView 流…

QT基础篇(13)QT5数据库

1.数据库基本概念 数据库(Database)是指存储、管理和组织数据的集合。它是一个组织化的、可持久化的数据集合,用于支持数据的存储、检索、更新和管理。 数据库系统(Database System)是建立在计算机上的数据管理系统&…

Eclipses安装教程

一、下载开发工具包 1、开发工具包JDK 下载地址链接:https://www.oracle.com/cn/java/technologies/downloads/ 下载教程: 1)点击链接,可以跳转到页面 2)下滑页面,找到开发工具包 3) 记住下载之…

初识C语言·自定义类型(1)

目录 1 联合体类型的声明 2 联合体的特点 3 联合体的大小计算 4 枚举类型类型的声明 5 枚举的优点 1 联合体类型的声明 联合体,顾名思义,是多个对象连在一起的,即联合体的成员都是共用空间的,所以联合体也叫做共用体&#xf…

Java开发分析工具 JProfiler的详细使用方法解析(附 JProfiler for Mac许可证秘钥)

JProfiler 是一款功能强大的Java代码分析工具,JProfiler的直观UI可帮助您解决性能瓶颈,确定内存泄漏并了解线程问题且JProfiler Mac破解版配置会话非常简单,第三方集成使得入门变得轻而易举,并且以自然的方式呈现数据分析。 解…

万物简单AIoT 端云一体实战案例学习 之 快速开始

学物联网,来万物简单IoT物联网!! 下图是本案的3步导学,每个步骤中实现的功能请参考图中的说明。 1、简介 物联网具有场景多且复杂、链路长且开发门槛高等特点,让很多想学习或正在学习物联网的学生或开发者有点不知所措,甚至直接就放弃了。    万物简单AIoT物联网教育…

72.批量执行Redis命令的4种方式!

文章目录 前言一、Redis命令执行过程二、原生批量命令三、pipeline(管道)四、Lua脚本五、Redis事务六、Redis Cluster模式下该如何正确使用批量命令操作? 前言 在我们的印象中Redis命令好像都是一个个单条进行执行的,但实际上我们是可以批量执行Redis命…

二层交换机和三层交换机

二层交换机:将源mac和端口进行转发,是同一个网段进行通信的,不能实现路由转发,若想跨网段则需要接入一个路由器 如:pc1 192.168.1.1 与 pc2 192.168.1.2通信需要经过二层交换机,二层交换机不能配置ip的&am…

【前端设计】输入框

欢迎来到前端设计专栏&#xff0c;本专栏收藏了一些好看且实用的前端作品&#xff0c;使用简单的html、css语法打造创意有趣的作品&#xff0c;为网站加入更多高级创意的元素。 html <!DOCTYPE html> <html lang"en"> <head><meta charset"…

聊聊PowerJob的UserService

序 本文主要研究一下PowerJob的UserService UserService tech/powerjob/server/core/service/UserService.java Service public class UserService {Resourceprivate UserInfoRepository userInfoRepository;/*** 保存/修改 用户* param userInfoDO user*/public void save…

RHCE上课笔记(前半部分)

第一部分 网络服务 第一章 例行性工作 1.单一执行的例行性工作 单一执行的例行性工作&#xff08;就像某一个时间点 的闹钟&#xff09;&#xff1a;仅处理执行一次 1.1 at命令&#xff1a;定时任务信息 [rhellocalhost ~]$ rpm -qa |grep -w at at-spi2-core-2.40.3-1.el9.x…

【leetcode题解C++】541.反转字符串II

541. 反转字符串II 给定一个字符串 s 和一个整数 k&#xff0c;从字符串开头算起&#xff0c;每计数至 2k 个字符&#xff0c;就反转这 2k 字符中的前 k 个字符。 如果剩余字符少于 k 个&#xff0c;则将剩余字符全部反转。如果剩余字符小于 2k 但大于或等于 k 个&#xff0c…

Nacos 在云原生架构下的演进

作者&#xff1a;之卫 背景 Nacos 提供的最核心能力是动态服务发现与动态配置管理能力&#xff0c;在云原生环境下&#xff0c;借助云产品&#xff0c;如 EDAS&#xff08;企业级分布式应用服务&#xff09;平台中&#xff0c;我们可以很轻松地使用 K8s 来托管 Nacos 体系的微…