Linux系统之tree命令的基本使用

Linux系统之tree命令的基本使用

  • 一、tree命令介绍
  • 二、tree工具安装
  • 三、tree命令帮助
    • 3.1 查询帮助信息
    • 3.2 tree命令帮助解释
  • 四、tree命令的基本使用
    • 4.1 直接使用
    • 4.2 *限制显示的层级
    • 4.3 仅显示目录
    • 4.4 不显示隐藏文件
    • 4.5 显示文件大小
    • 4.6 彩色输出
    • 4.7 输出到文件
    • 4.8 输出不同格式
  • 五、注意事项

在这里插入图片描述

一、tree命令介绍

tree 是一个递归列出目录内容的命令行实用工具,它以树状图的形式显示文件和目录结构。tree 命令不是 Linux 系统默认自带的命令,需要单独安装。

二、tree工具安装

  • 安装 tree

  • 在大多数基于 Debian 的系统(如 Ubuntu)上,可以通过以下命令安装 tree

sudo apt-get update
sudo apt-get install tree
  • 对于基于 Red Hat 的系统(如 CentOS 或 Fedora),可以使用以下命令:
sudo yum install tree
# 或者在较新的版本中使用
sudo dnf install tree

三、tree命令帮助

3.1 查询帮助信息

在Rocky Linux 9.4系统中,我们在命令行终端使用–help选项查询tree命令帮助信息。

[root@RockyLinux-server001 ~]# tree --help
usage: tree [-acdfghilnpqrstuvxACDFJQNSUX] [-H baseHREF] [-T title ]
	[-L level [-R]] [-P pattern] [-I pattern] [-o filename] [--version]
	[--help] [--inodes] [--device] [--noreport] [--nolinks] [--dirsfirst]
	[--charset charset] [--filelimit[=]#] [--si] [--timefmt[=]<f>]
	[--sort[=]<name>] [--matchdirs] [--ignore-case] [--fromfile] [--]
	[<directory list>]
  ------- Listing options -------
  -a            All files are listed.
  -d            List directories only.
  -l            Follow symbolic links like directories.
  -f            Print the full path prefix for each file.
  -x            Stay on current filesystem only.
  -L level      Descend only level directories deep.
  -R            Rerun tree when max dir level reached.
  -P pattern    List only those files that match the pattern given.
  -I pattern    Do not list files that match the given pattern.
  --ignore-case Ignore case when pattern matching.
  --matchdirs   Include directory names in -P pattern matching.
  --noreport    Turn off file/directory count at end of tree listing.
  --charset X   Use charset X for terminal/HTML and indentation line output.
  --filelimit # Do not descend dirs with more than # files in them.
  --timefmt <f> Print and format time according to the format <f>.
  -o filename   Output to file instead of stdout.
  --du          Print directory sizes.
  --prune       Prune empty directories from the output.
  ------- File options -------
  -q            Print non-printable characters as '?'.
  -N            Print non-printable characters as is.
  -Q            Quote filenames with double quotes.
  -p            Print the protections for each file.
  -u            Displays file owner or UID number.
  -g            Displays file group owner or GID number.
  -s            Print the size in bytes of each file.
  -h            Print the size in a more human readable way.
  --si          Like -h, but use in SI units (powers of 1000).
  -D            Print the date of last modification or (-c) status change.
  -F            Appends '/', '=', '*', '@', '|' or '>' as per ls -F.
  --inodes      Print inode number of each file.
  --device      Print device ID number to which each file belongs.
  ------- Sorting options -------
  -v            Sort files alphanumerically by version.
  -t            Sort files by last modification time.
  -c            Sort files by last status change time.
  -U            Leave files unsorted.
  -r            Reverse the order of the sort.
  --dirsfirst   List directories before files (-U disables).
  --sort X      Select sort: name,version,size,mtime,ctime.
  ------- Graphics options -------
  -i            Don't print indentation lines.
  -A            Print ANSI lines graphic indentation lines.
  -S            Print with CP437 (console) graphics indentation lines.
  -n            Turn colorization off always (-C overrides).
  -C            Turn colorization on always.
  ------- XML/HTML/JSON options -------
  -X            Prints out an XML representation of the tree.
  -J            Prints out an JSON representation of the tree.
  -H baseHREF   Prints out HTML format with baseHREF as top directory.
  -T string     Replace the default HTML title and H1 header with string.
  --nolinks     Turn off hyperlinks in HTML output.
  ------- Input options -------
  --fromfile    Reads paths from files (.=stdin)
  ------- Miscellaneous options -------
  --version     Print version and exit.
  --help        Print usage and this help message and exit.
  --            Options processing terminator.

3.2 tree命令帮助解释

  • 使用方法:
tree [选项]... [<directory list>]
  • 列表选项
选项描述
-a列出所有文件,包括隐藏文件。
-d仅列出目录。
-l将符号链接当作目录处理。
-f打印每个文件的完整路径前缀。
-x保持在当前文件系统内,不进入其他文件系统(如挂载点)。
-L level递归显示指定深度的目录层级。
-R当达到最大目录层级时重新运行 tree
-P pattern仅列出匹配给定模式的文件。
-I pattern不列出匹配给定模式的文件。
--ignore-case模式匹配时忽略大小写。
--matchdirs-P 模式匹配中包含目录名。
--noreport关闭树状图结尾处的文件/目录计数。
--charset X使用字符集 X 输出终端/HTML 和缩进线。
--filelimit #如果目录中的文件数量超过 #,则不深入该目录。
--timefmt <f>根据格式 打印和格式化时间。
-o filename输出到文件而不是标准输出。
--du打印目录大小。
--prune从输出中剪除空目录。
  • 文件选项
选项描述
-q将不可打印字符显示为 ?
-N直接打印不可打印字符。
-Q使用双引号引用文件名。
-p打印每个文件的权限。
-u显示文件所有者或用户ID (UID)。
-g显示文件所属组或组ID (GID)。
-s打印每个文件的字节数大小。
-h以更易读的方式打印文件大小。
--si类似于 -h,但使用 SI 单位(1000 的幂)。
-D打印最后一次修改日期或(使用 -c)状态更改日期。
-F根据 ls -F 的方式添加后缀 /=, *, @, `
--inodes打印每个文件的 inode 号。
--device打印每个文件所属设备 ID 号。
  • 排序选项
选项描述
-v按版本对文件进行字母数字排序。
-t按最后修改时间排序文件。
-c按最后状态改变时间排序文件。
-U不对文件排序。
-r反转排序顺序。
--dirsfirst先列出目录再列出文件(-U 禁用此功能)。
--sort X选择排序方式:名称、版本、大小、修改时间、状态改变时间。
  • 图形选项
选项描述
-i不打印缩进线。
-A使用 ANSI 线条图形打印缩进线。
-S使用 CP437 控制台图形打印缩进线。
-n总是关闭颜色化(-C 覆盖此选项)。
-C总是开启颜色化。
  • XML/HTML/JSON 选项
选项描述
-X打印树状结构的 XML 表示。
-J打印树状结构的 JSON 表示。
-H baseHREF以 HTML 格式打印,baseHREF 作为顶级目录。
-T string使用字符串替换默认的 HTML 标题和 H1 标签。
--nolinks关闭 HTML 输出中的超链接。
  • 输入选项
选项描述
--fromfile从文件中读取路径(. 表示标准输入)。
  • 杂项选项
选项描述
--version打印版本信息并退出。
--help打印用法和此帮助信息并退出。
--选项处理终止符。

四、tree命令的基本使用

4.1 直接使用

最简单的用法是直接输入 tree,这将从当前目录开始,显示所有子目录和文件。

[root@RockyLinux-server001 ~]# tree
.
├── aa
├── aa01.txt
├── aa02.txt
├── aa03.txt
├── aa04.txt
├── aa05.txt
├── aa06.txt
├── abc.txt
├── anaconda-ks.cfg
├── mytest.aa
├── test.txt
└── tree
    └── bb
        └── cc

3 directories, 11 files

4.2 *限制显示的层级

我们可以使用 -L 选项来指定要显示的最大深度。

[root@RockyLinux-server001 ~]# tree -L 1
.
├── aa
├── aa01.txt
├── aa02.txt
├── aa03.txt
├── aa04.txt
├── aa05.txt
├── aa06.txt
├── abc.txt
├── anaconda-ks.cfg
├── mytest.aa
├── test.txt
└── tree

1 directory, 11 files

4.3 仅显示目录

如果你只想看到目录而不包括文件,可以使用 -d 选项。

[root@RockyLinux-server001 ~]# tree -d
.
└── tree
    └── bb
        └── cc

3 directories

4.4 不显示隐藏文件

  • 默认情况下,tree 不会显示隐藏文件(即以点.开头的文件)。如果你不想改变这个行为,只需要正常使用 tree 即可。

  • 如果想明确地确保隐藏文件不会被显示,可以使用 -a-I 选项结合来排除特定模式:

  • 以下面的例子会显示所有文件,但排除 .git.ssh 目录。

[root@RockyLinux-server001 ~]# tree -a -I '.git|.ssh'
.
├── aa
├── aa01.txt
├── aa02.txt
├── aa03.txt
├── aa04.txt
├── aa05.txt
├── aa06.txt
├── abc.txt
├── anaconda-ks.cfg
├── .bash_history
├── .bash_logout
├── .bash_profile
├── .bashrc
├── .cshrc
├── .docker
│   └── buildx
│       ├── activity
│       │   └── default
│       ├── .buildNodeID
│       ├── defaults
│       ├── instances
│       ├── .lock
│       └── refs
│           └── default
│               └── default
│                   └── l719wavztb8rg53q0s8243nep
├── .lesshst
├── mytest.aa
├── .tcshrc
├── test.txt
├── tree
│   └── bb
│       └── cc
└── .viminfo

11 directories, 23 files

4.5 显示文件大小

使用 -h 选项可以让 tree 显示文件大小,并且是以人类易读的方式(例如 KB, MB)。

[root@RockyLinux-server001 ~]# tree -h
.
├── [   58]  aa
├── [    0]  aa01.txt
├── [    0]  aa02.txt
├── [    0]  aa03.txt
├── [    0]  aa04.txt
├── [    0]  aa05.txt
├── [    0]  aa06.txt
├── [   12]  abc.txt
├── [  978]  anaconda-ks.cfg
├── [   15]  mytest.aa
├── [   79]  test.txt
└── [   16]  tree
    └── [   16]  bb
        └── [    6]  cc

3 directories, 11 files
 ```

4.6 彩色输出

使用 -C 选项可以让 tree 输出带有颜色的文本,使输出更加直观。

[root@RockyLinux-server001 ~]# tree -C
.
├── aa
├── aa01.txt
├── aa02.txt
├── aa03.txt
├── aa04.txt
├── aa05.txt
├── aa06.txt
├── abc.txt
├── anaconda-ks.cfg
├── mytest.aa
├── test.txt
└── tree
    └── bb
        └── cc

3 directories, 11 files
 ```

4.7 输出到文件

如果想要保存 tree 的输出结果,可以重定向输出到文件。

     tree > directory_structure.txt

4.8 输出不同格式

例如使用-J选项和,可以输出json格式内容。

[root@RockyLinux-server001 ~]# tree -J
[{"type":"directory","name": ".","contents":[
    {"type":"file","name":"aa"},
    {"type":"file","name":"aa01.txt"},
    {"type":"file","name":"aa02.txt"},
    {"type":"file","name":"aa03.txt"},
    {"type":"file","name":"aa04.txt"},
    {"type":"file","name":"aa05.txt"},
    {"type":"file","name":"aa06.txt"},
    {"type":"file","name":"abc.txt"},
    {"type":"file","name":"anaconda-ks.cfg"},
    {"type":"file","name":"mytest.aa"},
    {"type":"file","name":"test.txt"},
    {"type":"directory","name":"tree","contents":[
      {"type":"directory","name":"bb","contents":[
        {"type":"directory","name":"cc","contents":[
        ]}
      ]}
    ]}
  ]},
  {"type":"report","directories":3,"files":11}
]

五、注意事项

  1. tree 命令不是所有 Linux 发行版默认安装的工具,可能需要通过包管理器手动安装。

  2. 使用 -a 选项显示隐藏文件时,请注意这可能会列出大量你通常不需要查看的系统文件。

  3. 在大目录结构中使用 tree 可能会产生非常庞大的输出,建议结合管道和分页工具如 less 使用。

  4. 如果不希望 tree 递归进入其他挂载点下的文件系统,可以使用 -x 选项限制在当前文件系统内。

  5. 使用 -L 选项可以限制 tree 的递归深度,这对于只想查看顶层结构或特定层级内容非常有用。

  6. tree 支持多种输出格式,包括彩色终端输出、HTML、XML 和 JSON,适用于不同的应用场景。

  7. 当需要处理包含非打印字符的文件名时,使用 -N-Q 选项可以帮助正确显示或引用这些文件名。

  8. 对于性能考虑,可以通过 --filelimit 选项设置最大文件数量,避免 tree 在大型目录中消耗过多资源。

  9. 使用 --prune 选项可以简化输出,排除空目录,使树状图更加简洁。

  10. tree 的排序和过滤选项允许用户根据需求定制化输出,但要注意这些操作可能增加命令执行的时间。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

微信小程序性能优化、分包

性能优化是任何应用开发中的重要组成部分&#xff0c;尤其是在移动环境中。对于微信小程序而言&#xff0c;随着用户量的增加和应用功能的丰富&#xff0c;性能优化显得尤为关键。良好的性能不仅提升用户体验&#xff0c;还能增加用户留存率和应用的使用频率。我们将探讨如何在…

【星海随笔】删除ceph

cephadm shell ceph osd set noout ceph osd set norecover ceph osd set norebalance ceph osd set nobackfill ceph osd set nodown ceph osd set pause参考文献&#xff1a; https://blog.csdn.net/lyf0327/article/details/90294011 systemctl stop ceph-osd.targetyum re…

Unity游戏环境交互系统

概述 交互功能使用同一个按钮或按钮列表&#xff0c;在不同情况下显示不同的内容&#xff0c;按下执行不同的操作。 按选项个数分类 环境交互系统可分为两种&#xff0c;单选项交互&#xff0c;一般使用射线检测&#xff1b;多选项交互&#xff0c;一般使用范围检测。第一人…

DVWA安装

这里讲的很清楚&#xff0c;如果是win10的话可能会出现端口80占用的情况&#xff0c; 使用管理员身份运行 cmdnet stop http //停止系统http服务sc config http start disabled //禁用服务的自动启动&#xff0c;此处注意等号后面的空格不可少

Oracle考试多少分算通过?

OCP和OCM认证的考试及格分数并不是固定的&#xff0c;而是根据考试的难度和考生的整体表现来确定。对于OCP认证&#xff0c;考生需要全面掌握考试要求的知识和技能&#xff0c;并在考试中表现出色才有可能通过。而对于OCM认证&#xff0c;考生则需要在每个模块中都达到一定的水…

18_HTML5 Web IndexedDB 数据库 --[HTML5 API 学习之旅]

HTML5 Web IndexedDB API 是一种在用户浏览器中存储大量结构化数据的机制&#xff0c;它允许存储和检索键值对&#xff0c;其中键可以是任何有效的JavaScript对象。IndexedDB 主要用于需要复杂查询的数据密集型Web应用。 IndexedDB 的特点&#xff1a; HTML5 Web IndexedDB A…

【Seata】分布式事务问题和理论基础

目录 1.分布式事务问题 1.1本地事务 1.2分布式事务 2.理论基础 2.1CAP定理 2.1.1一致性 2.1.2可用性 2.1.3分区容错 2.1.4矛盾 2.2BASE理论 2.3解决分布式事务的思路 1.分布式事务问题 1.1本地事务 本地事务&#xff0c;也就是传统的单机事务。在传统数据库事务中…

【数据库初阶】Linux中库的基础操作

&#x1f389;博主首页&#xff1a; 有趣的中国人 &#x1f389;专栏首页&#xff1a; 数据库初阶 &#x1f389;其它专栏&#xff1a; C初阶 | C进阶 | 初阶数据结构 亲爱的小伙伴们&#xff0c;大家好&#xff01;在这篇文章中&#xff0c;我们将深入浅出地为大家讲解 Linux…

数据结构与算法Python版 图

文章目录 一、图二、抽象数据类型图三、图的实现-邻接列表法 一、图 表示图的英文单词 painting&#xff1a;用画刷画的油画drawing&#xff1a;用硬笔画的素描/线条画picture&#xff1a;真实形象所反映的画&#xff0c;如照片等&#xff0c;如take pictureimage&#xff1a…

Word表格另起一页解决办法

Word表格另起一页解决办法 表格设置根据内容自动调整&#xff0c;取消指定高度第1步 第2步

Python数据可视化案例——折线图

目录 json介绍&#xff1a; Pyecharts介绍 安装pyecharts包? 构建一个基础的折线图 配置全局配置项 综合案例&#xff1a; 使用工具对数据进行查看?&#xff1a; 数据处理 json介绍&#xff1a; json是一种轻量级的数据交互格式&#xff0c;采用完全独立于编程语言的…

【Seata】seata的部署和集成

一、部署Seata的tc-server 1.下载 首先我们要下载seata-server包&#xff0c;地址在http://seata.io/zh-cn/blog/download.html 当然&#xff0c;课前资料也准备好了&#xff1a; 2.解压 在非中文目录解压缩这个zip包&#xff0c;其目录结构如下&#xff1a; 3.修改配置 修…

链表 之 无头结点【哨兵位】单向非循环链表【单链表】增删改查 等方法

系列文章目录 &#x1f388; &#x1f388; 我的CSDN主页:OTWOL的主页&#xff0c;欢迎&#xff01;&#xff01;&#xff01;&#x1f44b;&#x1f3fc;&#x1f44b;&#x1f3fc; &#x1f389;&#x1f389;我的C语言初阶合集&#xff1a;C语言初阶合集&#xff0c;希望能…

GCP Cloud Architect exam - PASS

备考指南 推荐视频课程 https://www.udemy.com/course/google-cloud-architect-certifications/?couponCodeKEEPLEARNING 推荐题库 https://www.udemy.com/course/gcp-professional-cloud-architect-exam-practice-tests-2024​/?couponCodeKEEPLEARNING 错题集 http…

CCF-GESP 等级考试 2023年12月认证C++二级真题解析

2023年12月真题 一、单选题&#xff08;每题2分&#xff0c;共30分&#xff09; 正确答案&#xff1a;C 考察知识点&#xff1a;变量的定义与使用 解析&#xff1a;变量命名规则&#xff1a;1、只能包括数字、字母和下划线&#xff1b;2、不能以数字开头&#xff1b;3、不能和…

5.学习webpack配置 babel基本配置

babel是一个javascript编译工具&#xff0c;其主要功能是将新版本的JavaScript代码&#xff08;如es6&#xff09;转换为旧版本的代码&#xff08;如es5&#xff09;&#xff0c;以便能够在旧版本的浏览器或环境中运行。一般配合webpack使用。 使用npm i -D babel/core babel/p…

配置搜索无人机

升级ubuntu内核 https://www.bilibili.com/video/BV11X4y1h7qN/?spm_id_from333.337.search-card.all.click 进入四个内核文件并安装 sudo dpkg -i *.deb安装ROS&#xff0c;PX4&#xff0c;XTDrone&#xff0c;QGC https://blog.csdn.net/qq_45493236/article/details/13…

Linux内核蓝牙子系统有什么(9)

接前一篇文章&#xff1a;Linux内核蓝牙子系统有什么&#xff08;8&#xff09; 本文内容参考&#xff1a; Linux之蓝牙相关代码浅析 | DDNotes 蓝牙驱动相关代码_蓝牙驱动代码-CSDN博客 linux蓝牙驱动代码阅读笔记_bt-sco.c-CSDN博客 Linux内核的蓝牙子系统架构-CSDN博客 …

22. 仿LISP运算

题目描述 LISP语言唯一的语法就是括号要配对 形如(OP P1 P2 ...)&#xff0c;括号内元素由单个空格分割。其中第一个元素OP为操作符&#xff0c;后续元素均为其参数&#xff0c;参数个数取决于操作符类型。注意:参数P1,P2也有可能是另外一个嵌套的(OP P1 P2...)&#xff0c;当前…

Axure10

如果还是不行就将字体图标安装在控制面板–字体下 打开原型了之后&#xff0c;icon没有 一定要将字体库放到–》控制面板\外观和个性化\字体 里面