linux下tree指令的用法, 树状图列出目录, 树状图逐级列出目录

 

tree命令,主要功能是创建文件列表,将所有文件以树的形式列出来

linux下的tree就比较强大了,但一般系统并不自带这个命令,需要手动下载安装,

 

安装

sudo apt install tree 

## or using yum 
# yum -y install tree

 

语法

tree [-aACdDfFgilnNpqstux][-I <范本样式>][-P <范本样式>][目录...]

参数说明

  • -a 显示所有文件和目录。
  • -A 使用ASNI绘图字符显示树状图而非以ASCII字符组合。
  • -C 在文件和目录清单加上色彩,便于区分各种类型。
  • -d 显示目录名称而非内容。
  • -D 列出文件或目录的更改时间。
  • -f 在每个文件或目录之前,显示完整的相对路径名称。
  • -F 在执行文件,目录,Socket,符号连接,管道名称名称,各自加上”*”,”/”,”=”,”@”,”|”号。
  • -g 列出文件或目录的所属群组名称,没有对应的名称时,则显示群组识别码。
  • -i 不以阶梯状列出文件或目录名称。
  • -I<范本样式> 不显示符合范本样式的文件或目录名称。
  • -l 如遇到性质为符号连接的目录,直接列出该连接所指向的原始目录。
  • -n 不在文件和目录清单加上色彩。
  • -N 直接列出文件和目录名称,包括控制字符。
  • -p 列出权限标示。
  • -P<范本样式> 只显示符合范本样式的文件或目录名称。
  • -q 用”?”号取代控制字符,列出文件和目录名称。
  • -s 列出文件或目录大小。
  • -t 用文件和目录的更改时间排序。
  • -u 列出文件或目录的拥有者名称,没有对应的名称时,则显示用户识别码。
  • -x 将范围局限在现行的文件系统中,若指定目录下的某些子目录,其存放于另一个文件系统上,则将该子目录予以排除在寻找范围外

 

实例

以树状图列出当前目录结构。可直接使用如下命令:

tree
linux下tree指令的用法, 树状图列出目录, 树状图逐级列出目录
linux下tree指令的用法, 树状图列出目录, 树状图逐级列出目录

 

或者:

 [justcode@ikeepstudying]# tree -L 3
.
├── examples
│   ├── cpan-dbd-mysql
│   │   └── index.yaml
│   ├── daemontools
│   │   ├── index.yaml
│   │   └── scripts
│   ├── flex
│   │   ├── build
│   │   └── index.yaml
│   ├── nginx
│   │   ├── index.yaml
│   │   └── scripts
│   └── yum
│       ├── index.yaml
│       ├── patches
│       └── scripts

 

解读

1. –v –r

根据字母,数字正序或者倒序排列文件

2. -L level 或者 –filelimit #

都是追溯目录的级别

3. -x

tree -x ${dir} 只打印当前一级目录信息

与文件相关(不是文件内容相关)的主要操作告一段落,周末做个小小的总结,并且尝试写一些基本的linux命令。

 

其他

1. tree

打印当前目录下所有文件

2. tree –p ${dir}

打印dir目录下所有文件,以及他们的权限

3. tree –h ${dir}

打印dir目录下所有文件,以及适读的大小

4. tree path –P “*.sh”

打印所有.sh结尾的文件

5. tree path –H http://localhost –o out.html

包含目录树输出的html文件

 

tree命令的参数也有很多例如-a、-L、-d、-P,这里不再一一列举。本文主要探讨关于-P 选项的使用及注意事项。

定义:-P 选项是只显示符合范本样式的文件或目录名称

在-P选项下,我们可以借助通配符来快速筛选定位并查看符合给定样式的一个或多个目标文件或目录,因此当目标文件或目录所在的目录层有很多文件及文件夹或者层级比较深时,-P选项就能提供一个快速有效的方法。

 

1.使用-P 选项配合通配符来筛选查看 *.txt / *.sh / *.log 等等结尾的文件,参考如下:

linux下tree指令的用法, 树状图列出目录, 树状图逐级列出目录
linux下tree指令的用法, 树状图列出目录, 树状图逐级列出目录

 

2. 使用-P 选项配合通配符列出testdir目录下的名字包含d的目录及其目录结构。结果如图3所示,可以看到testdir目录下符合’d*’样式的文件也被列举出来且显示error opening dir,如果不想显示文件可以增加斜杠/ ,如图所示。这里需要注意的是dir1、dir2、dir3目录下满足d*样式的文件不会显示出来。

linux下tree指令的用法, 树状图列出目录, 树状图逐级列出目录
linux下tree指令的用法, 树状图列出目录, 树状图逐级列出目录

但是只有-P选项,筛选出来的结果并不完整,此例中就缺少了dir1,所以我们还要配合-a 选项(-a 显示所有文件和目录),通过实验可知 -P 和-a 的先后顺序有要求,如图所示

linux下tree指令的用法, 树状图列出目录, 树状图逐级列出目录
linux下tree指令的用法, 树状图列出目录, 树状图逐级列出目录

3. 还有一点是tree命令的默认条件下是把符文链接文件当作目录来处理的,但是在-P 选项下是不生效的,所以当所要查找的目标属于符文链接文件时,我们还要借助-l 选项(-l 对于符号链接文件,打印出该链接所指向的文件路径),如图所示

linux下tree指令的用法, 树状图列出目录, 树状图逐级列出目录
linux下tree指令的用法, 树状图列出目录, 树状图逐级列出目录

关于-P、 -a、 -l选项的各种顺序及组合,经过实验以下四种命令格式是可行的,具体各个实验结果这里不再一一贴图。

linux下tree指令的用法, 树状图列出目录, 树状图逐级列出目录
linux下tree指令的用法, 树状图列出目录, 树状图逐级列出目录

 

 

本文:linux下tree指令的用法, 树状图列出目录, 树状图逐级列出目录

发表评论