本文是Linux Shell脚本系列教程的第(一)篇,更多shell教程请看:Linux Shell脚本系列教程 想要学习linux,shell知识必不可少,今天就给大家来简单介绍下shell的基本知识。 Shell简介 Shell自身是一个用C语言编写的程序,是用户来使用Unix或Linux的桥梁,用户的大部分工作都需要通过Shell来完成。只有熟练使用shell,才能熟练掌握linux。 可以说:Shell既是一种命令语言,又是一种程序设计语言。 作为命令语言,它可以交互式地解释和执行用户输入的命令;而作为程序设计语言,它可以定义各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和分支。 Shell虽然不是Unix/Linux系统内核的一部分,但它调用了系统核心的大部分功能来执行程序、建立文件并以并行的方式来协调各个程序的运行。…
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

或者:
[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 等等结尾的文件,参考如下:

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

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

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

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

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