最近写博客的时候偶尔会需要将文件目录结构直观地列出来,例如python的包结构。

  于是在网上搜了搜,发现了一个Linux下还不错的工具--tree

  tree 可以很直观地显示多级目录结构。

1. 安装方法

  Ubuntu上直接

sudo apt install tree

2. 几个比较常规的用法:

  1. 显示目录结构

[root@ Test]# tree
.
└── Level-
├── L1-File-.txt
├── L1-File-.txt
├── Level--
│   ├── L21-File-.txt
│   ├── Level--
│   │   └── L31-File-.txt
│   ├── Level--
│   │   └── L32-File-.txt
│   └── Level--
│   └── L33-File-.txt
├── Level--
│   └── L22-File-.txt
└── Level-- directories, files

  

  2. 包含隐藏文件

[root@ Test]# tree -a
.
└── Level-
├── L1-File-.txt
├── L1-File-.txt
├── .L1-hide.dat
├── Level--
│   ├── L21-File-.txt
│   ├── .L2-hide.dat
│   ├── Level--
│   │   └── L31-File-.txt
│   ├── Level--
│   │   └── L32-File-.txt
│   └── Level--
│   └── L33-File-.txt
├── Level--
│   └── L22-File-.txt
└── Level-- directories, files

  3. 控制深度(假设为3)

[root@ Test]# tree -L
.
└── Level-
├── L1-File-.txt
├── L1-File-.txt
├── Level--
│   ├── L21-File-.txt
│   ├── Level--
│   ├── Level--
│   └── Level--
├── Level--
│   └── L22-File-.txt
└── Level-- directories, files

  4. 只显示目录

[root@ Test]# tree -d
.
└── Level-
├── Level--
│   ├── Level--
│   ├── Level--
│   └── Level--
├── Level--
└── Level-- directories

  5. 对需要显示的文件进行过滤

# 只显示包含 "L2"字符串的文件,并将过滤后的空目录也同时过滤掉
[root@ Test]# tree -P '*L2*' --prune
.
└── Level-
├── Level--
│   └── L21-File-.txt
└── Level--
└── L22-File-.txt directories, files # 只显示不包含 "L2"字符串的文件,并将过滤后的空目录也同时过滤掉
[root@ Test]#
[root@ Test]# tree -I '*L2*' --prune
.
└── Level-
├── L1-File-.txt
├── L1-File-.txt
└── Level--
├── Level--
│   └── L31-File-.txt
├── Level--
│   └── L32-File-.txt
└── Level--
└── L33-File-.txt directories, files

3. 更多的选项

选项 说明
-a 显示所有文件,包含隐藏文件。
-d 只显示目录。
-l 跟踪符号链接,如果链接的是一个目录,则当成目录处理。
-f 显示完整路径。
-x 只显示本文件系统。
-L level 控制显示的目录深度。
-R 在下级目录中,再次执行 tree 命令并且加上 '-o 00Tree.html'选项,配合-L,-H使用。
-P pattern 只显示匹配了 pattern 的文件(不是目录),支持简单的正则表达式。
-I pattern 与-P相反,只显示没有匹配 pattern的文件。
--ignore-case 当使用了-P或-I选项时,忽略大小写。
--matchdirs 当使用了-P选项时,文件名包含完整路径。
--prune 不显示空目录,如果经过-P或-I后没有目录下没有需要显示的,也当作空目录。
--noreport 不显示最后的统计信息。
--charset charset 指定字符集。
--filelimit # 过滤掉文件个数超过 # 的目录。
--timefmt fmt 按照指定的格式打印文件的修改时间。
-o filename 将结果输出到文件。
-q 用问号代替不可打印的字符。
-N 用八进制代替不可打印的字符。
-Q 用引号将文件名括起来。
-p 显示文件的类型和权限。
-u 显示文件所属的用户名或者UID。
-g 显示文件所属的组或者GID。
-s 显示文件的大小,单位:字节。
-h 显示文件的大小,使用更人性化的显示。
--si 显示文件的大小,类似 -h 但是使用国际公制单位(1k=1000)。
--du 对于目录,显示其下所有文件的累计大小。
-D 显示文件的最后修改时间。
-F 类似 ls -F,对不同的文件类型,在末尾加上不同的字符。
--inodes 显示文件的索引节点。
--device 显示文件所属的设备号。
-v 显示的文件列表按照version排序。
-t 显示的文件列表按照最后修改时间排序。
-c 显示的文件列表按照最后的状态改变时间排序。
-U 不进行排序处理。
-r 反向输出列表。
--dirsfirst 优先显示目录(同一级别  )
--sort[=name] 指定排序方式,name(default), ctime, mtime, size, version.
-i 输出中不要进行缩进。
-A 使用ASCII的横线字符表示缩进。
-S 使用CP437的横线字符表示缩进。
-n 关闭颜色显示。
-C 打开颜色显示。
-X 使能XML格式输出。
-J 使能JSON格式输出。
-H baseHREF 使能HTML格式输出,并包含基本http链接地址。
-T title 在HTML格式输出中,设置标题和H1标签头
--nolinks 在HTML格式输出中,不输出超链接。

Linux杂谈: 树形显示多级目录--tree的更多相关文章

  1. [转帖]Linux杂谈: 树形显示多级目录--tree

    Linux杂谈: 树形显示多级目录--tree https://www.cnblogs.com/tp1226/p/8456539.html tree -L 最近写博客的时候偶尔会需要将文件目录结构直观 ...

  2. Linux 基础命令及基本目录

    Linux 基础命令及基本目录 一.网卡 1.网卡配置文件路径 ​ /etc/sysconfig/network-scripts/ifcfg-eth0 配置文件: TYPE=Ethernet # 以太 ...

  3. Linux之文档与目录结构

    Linux文件系统结构 Linux目录结构的组织形式和Windows有很大的不同.首先Linux没有“盘(C盘.D盘.E盘)”的概念.已经建立文件系统的硬盘分区被挂载到某一个目录下,用户通过操作目录来 ...

  4. Linux之文档与目录结构 目录的相关操作 Linux的文件系统

    Linux之文档与目录结构   Linux文件系统结构 Linux目录结构的组织形式和Windows有很大的不同.首先Linux没有“盘(C盘.D盘.E盘)”的概念.已经建立文件系统的硬盘分区被挂载到 ...

  5. Linux常用命令详解-目录文件操作命令

    来源:https://www.linuxidc.com/Linux/2018-04/151801.htm 现实中,服务器(包含Linux,Unix,Windows Server)一般都摆放在机房里,因 ...

  6. Linux之文档与目录结构 (/ 用法, 相对路径,绝对路径)

    Linux之文档与目录结构   Linux文件系统结构 Linux目录结构的组织形式和Windows有很大的不同.首先Linux没有“盘(C盘.D盘.E盘)”的概念.已经建立文件系统的硬盘分区被挂载到 ...

  7. 【转】第六章、Linux 的文件权限与目录配置

    原文网址:http://vbird.dic.ksu.edu.tw/linux_basic/0210filepermission.php 最近更新日期:2009/08/18 Linux最优秀的地方之一, ...

  8. 第六章、Linux 的文件权限与目录配置

    第六章.Linux 的文件权限与目录配置 1. 使用者与群组 2. Linux文件权限概念 2.1 Linux文件属性 2.2 如何改变文件属性与权限: chgrp, chown, chmod 2.3 ...

  9. Linux 指令篇:磁盘管理--tree

    Linux 指令篇:磁盘管理--tree 功能说明:以树状图列出目录的内容. 语 法:tree [-aACdDfFgilnNpqstux][-I <范本样式>][-P <范本样式&g ...

随机推荐

  1. CSS自己主动换行、强制不换行、强制断行、超出显示省略号

    P标签是默认是自己主动换行的,因此设置好宽度之后,可以较好的实现效果,可是近期的项目中发现,使用ajax载入数据之后.p标签内的内容没有换行,导致布局错乱,于是尝试着使用换行样式,尽管攻克了问题.可是 ...

  2. 剑指Offer面试题10(Java版):二进制中的1的个数

    题目:请实现一个函数,输入一个整数.输出该数二进制表示中1的个数. 比如把9表示成二进制是1001,有2位是1.因此假设输入9.该函数输出2. 1.可能引起死循环的解法 这是一道非常主要的考察二进制和 ...

  3. CSS盒子模型中距离的通俗解释

    设一个有两个div,一大一小,小的div在大的div里面,而小的div和大div直接的距离就叫外边距,用margin.margin-left.margin-right.margin-top.margi ...

  4. js进阶 9-16 如何实现多选框全选和取消

    js进阶 9-16 如何实现多选框全选和取消 一.总结 一句话总结:选择取到每一个checkbox的值,然后赋值为true或者false就好. 1.如何实现多选框全选和取消? 选择取到每一个check ...

  5. OpenGL学习一

    作者:朱金灿 来源:http://blog.csdn.net/clever101 回家计划学习OpenGL开发.没有开发机子,用的是别人的笔记本,不想装庞大的VS,于是选择小巧一点的codeblock ...

  6. python 爬取bilibili 视频信息

    抓包时发现子菜单请求数据时一般需要rid,但的确存在一些如游戏->游戏赛事不使用rid,对于这种未进行处理,此外rid一般在主菜单的响应中,但有的如番剧这种,rid在子菜单的url中,此外返回的 ...

  7. Java NIO(6)----NIO与IO

    当学习了Java NIO和IO的API后,一个问题立即涌入脑海: 我应该何时使用IO.何时使用NIO呢?在本文中,我会尽量清晰地解析Java NIO和IO的差异.它们的使用场景,以及它们怎样影响您的代 ...

  8. java中的方法返回值使用泛型,实现灵活的返回值类型

    痛点:      使用Mybatis框架的时候,想封装一个底层JDBC控制器,用于提供和Mybatis交互的增删改查接口(公用的接口),但由于公用的查询方法可能是用户自定义的任意一个和表对应的java ...

  9. hdu1693插头dp(多回路)

    题意:在n*m的矩阵中,有些格子有树,没有树的格子不能到达,找一条或多条回路,吃全然部的树,求有多少中方法. 这题是插头dp,刚刚学习,不是非常熟悉,研究了好几天才明确插头dp的方法,他们老是讲一些什 ...

  10. 【21.21%】【codeforces round 382D】Taxes

    time limit per test2 seconds memory limit per test256 megabytes inputstandard input outputstandard o ...