嵌入式开发交流网论坛

标题: 高级Linux运维工程师养成记-文件通配符 [打印本页]

作者: 源自桐柏    时间: 2020-8-7 07:15
标题: 高级Linux运维工程师养成记-文件通配符
高级Linux运维工程师养成记
在有些应用场景下,管理文件需要使用通配符来匹配文件名
查看以.txt结尾的文件
* 不包含隐藏文件
[root@centos8 data]# touch guanglei.txt[root@centos8 data]# touch TEST.txt[root@centos8 data]# touch .txt[root@centos8 data]# ll *.txt-rw-r--r-- 1 root root 0 Aug 5 05:53 guanglei.txt-rw-r--r-- 1 root root 0 Aug 5 05:53 TEST.txt查看以file开头的任意0个或者多个字符并且以.log结尾的文件
[root@centos8 data]# touch file{1..10}.log[root@centos8 data]# lltotal 4-rw-r--r-- 1 root root 0 Aug 1 19:21 file10.log-rw-r--r-- 1 root root 0 Aug 1 19:21 file1.log-rw-r--r-- 1 root root 0 Aug 1 19:21 file2.log-rw-r--r-- 1 root root 0 Aug 1 19:21 file3.log-rw-r--r-- 1 root root 0 Aug 1 19:21 file4.log-rw-r--r-- 1 root root 0 Aug 1 19:21 file5.log-rw-r--r-- 1 root root 0 Aug 1 19:21 file6.log-rw-r--r-- 1 root root 0 Aug 1 19:21 file7.log-rw-r--r-- 1 root root 0 Aug 1 19:21 file8.log-rw-r--r-- 1 root root 0 Aug 1 19:21 file9.log-rw-r--r-- 1 root root 0 Aug 1 19:20 guanglei.txt-rw-r--r--. 1 guanglei root 1 Aug 1 18:20 TEST.txt[root@centos8 data]# ll file*.log-rw-r--r-- 1 root root 0 Aug 1 19:21 file10.log-rw-r--r-- 1 root root 0 Aug 1 19:21 file1.log-rw-r--r-- 1 root root 0 Aug 1 19:21 file2.log-rw-r--r-- 1 root root 0 Aug 1 19:21 file3.log-rw-r--r-- 1 root root 0 Aug 1 19:21 file4.log-rw-r--r-- 1 root root 0 Aug 1 19:21 file5.log-rw-r--r-- 1 root root 0 Aug 1 19:21 file6.log-rw-r--r-- 1 root root 0 Aug 1 19:21 file7.log-rw-r--r-- 1 root root 0 Aug 1 19:21 file8.log-rw-r--r-- 1 root root 0 Aug 1 19:21 file9.log[attach]48416[/attach]

命令运行结果
显示file后面跟着任意一个字符的文件,文件名以.log结尾
排除了file10.log
[root@centos8 data]# ll file?.log-rw-r--r-- 1 root root 0 Aug 1 19:21 file1.log-rw-r--r-- 1 root root 0 Aug 1 19:21 file2.log-rw-r--r-- 1 root root 0 Aug 1 19:21 file3.log-rw-r--r-- 1 root root 0 Aug 1 19:21 file4.log-rw-r--r-- 1 root root 0 Aug 1 19:21 file5.log-rw-r--r-- 1 root root 0 Aug 1 19:21 file6.log-rw-r--r-- 1 root root 0 Aug 1 19:21 file7.log-rw-r--r-- 1 root root 0 Aug 1 19:21 file8.log-rw-r--r-- 1 root root 0 Aug 1 19:21 file9.log[attach]48417[/attach]

命令执行结果
查看指定字符数量的文件
[root@centos8 data]# touch TEST[root@centos8 data]# ll ????-rw-r--r-- 1 root root 0 Aug 5 05:59 TEST查看前一个工作目录的文件列表
前一个工作目录在/data目录下
[root@centos8 data]# cd [root@centos8 ~]# ls ~-file10.log file2.log file4.log file6.log file8.log guanglei.txt TEST.txtfile1.log file3.log file5.log file7.log file9.log TEST查看包含file和指定数字(1,2,3,4,5)的文件信息
[root@centos8 data]# ll file[1-5]*-rw-r--r-- 1 root root 0 Aug 1 19:21 file10.log-rw-r--r-- 1 root root 0 Aug 1 19:21 file1.log-rw-r--r-- 1 root root 0 Aug 1 19:21 file2.log-rw-r--r-- 1 root root 0 Aug 1 19:21 file3.log-rw-r--r-- 1 root root 0 Aug 1 19:21 file4.log-rw-r--r-- 1 root root 0 Aug 1 19:21 file5.log查看匹配列表中匹配任意一个字符的文件信息
即查看fileG.html,fileU.html,fileA.html,fileN.html,fileG.html,fileL.html,fileE.html,fileI.html的文件信息
[root@centos8 data]# touch /data/file{A..Z}.html[root@centos8 data]# ll /data/file[GUAGNLEI].html-rw-r--r-- 1 root root 0 Aug 5 06:06 /data/fileA.html-rw-r--r-- 1 root root 0 Aug 5 06:06 /data/fileE.html-rw-r--r-- 1 root root 0 Aug 5 06:06 /data/fileG.html-rw-r--r-- 1 root root 0 Aug 5 06:06 /data/fileI.html-rw-r--r-- 1 root root 0 Aug 5 06:06 /data/fileL.html-rw-r--r-- 1 root root 0 Aug 5 06:06 /data/fileN.html-rw-r--r-- 1 root root 0 Aug 5 06:06 /data/fileU.html[attach]48418[/attach]

命令运行结果
查看匹配列表中不包含指定的任意一个字符的文件信息
即查看不是fileG.html,fileU.html,fileA.html,fileN.html,fileG.html,fileL.html,fileE.html,fileI.html的文件信息
[root@centos8 data]# ll /data/file[^GUANGLEI].html-rw-r--r-- 1 root root 0 Aug 5 06:06 /data/fileB.html-rw-r--r-- 1 root root 0 Aug 5 06:06 /data/fileC.html-rw-r--r-- 1 root root 0 Aug 5 06:06 /data/fileD.html-rw-r--r-- 1 root root 0 Aug 5 06:06 /data/fileF.html-rw-r--r-- 1 root root 0 Aug 5 06:06 /data/fileH.html-rw-r--r-- 1 root root 0 Aug 5 06:06 /data/fileJ.html-rw-r--r-- 1 root root 0 Aug 5 06:06 /data/fileK.html-rw-r--r-- 1 root root 0 Aug 5 06:06 /data/fileM.html-rw-r--r-- 1 root root 0 Aug 5 06:06 /data/fileO.html-rw-r--r-- 1 root root 0 Aug 5 06:06 /data/fileP.html-rw-r--r-- 1 root root 0 Aug 5 06:06 /data/fileQ.html-rw-r--r-- 1 root root 0 Aug 5 06:06 /data/fileR.html-rw-r--r-- 1 root root 0 Aug 5 06:06 /data/fileS.html-rw-r--r-- 1 root root 0 Aug 5 06:06 /data/fileT.html-rw-r--r-- 1 root root 0 Aug 5 06:06 /data/fileV.html-rw-r--r-- 1 root root 0 Aug 5 06:06 /data/fileW.html-rw-r--r-- 1 root root 0 Aug 5 06:06 /data/fileX.html-rw-r--r-- 1 root root 0 Aug 5 06:06 /data/fileY.html-rw-r--r-- 1 root root 0 Aug 5 06:06 /data/fileZ.html查看包含指定区间的文件名
a-c包含了a-c之间的大写字母,但是不显示大写的C
[root@centos8 data]# touch /data/file{a..z}.html[root@centos8 data]# ls /data/file[a-c].html/data/filea.html /data/fileA.html /data/fileb.html /data/fileB.html /data/filec.html文件通配符还有一些常用的预定义的字符类,可以使用命令 man 7glob 查看
显示以file开头的所有小写字母的文件名
[root@centos8 data]# ll /data/file[[:lower:]].html-rw-r--r-- 1 root root 0 Aug 5 06:09 /data/filea.html-rw-r--r-- 1 root root 0 Aug 5 06:09 /data/fileb.html-rw-r--r-- 1 root root 0 Aug 5 06:09 /data/filec.html-rw-r--r-- 1 root root 0 Aug 5 06:09 /data/filed.html-rw-r--r-- 1 root root 0 Aug 5 06:09 /data/filee.html-rw-r--r-- 1 root root 0 Aug 5 06:09 /data/filef.html-rw-r--r-- 1 root root 0 Aug 5 06:09 /data/fileg.html-rw-r--r-- 1 root root 0 Aug 5 06:09 /data/fileh.html-rw-r--r-- 1 root root 0 Aug 5 06:09 /data/filei.html-rw-r--r-- 1 root root 0 Aug 5 06:09 /data/filej.html-rw-r--r-- 1 root root 0 Aug 5 06:09 /data/filek.html-rw-r--r-- 1 root root 0 Aug 5 06:09 /data/filel.html-rw-r--r-- 1 root root 0 Aug 5 06:09 /data/filem.html-rw-r--r-- 1 root root 0 Aug 5 06:09 /data/filen.html-rw-r--r-- 1 root root 0 Aug 5 06:09 /data/fileo.html-rw-r--r-- 1 root root 0 Aug 5 06:09 /data/filep.html-rw-r--r-- 1 root root 0 Aug 5 06:09 /data/fileq.html-rw-r--r-- 1 root root 0 Aug 5 06:09 /data/filer.html-rw-r--r-- 1 root root 0 Aug 5 06:09 /data/files.html-rw-r--r-- 1 root root 0 Aug 5 06:09 /data/filet.html-rw-r--r-- 1 root root 0 Aug 5 06:09 /data/fileu.html-rw-r--r-- 1 root root 0 Aug 5 06:09 /data/filev.html-rw-r--r-- 1 root root 0 Aug 5 06:09 /data/filew.html-rw-r--r-- 1 root root 0 Aug 5 06:09 /data/filex.html-rw-r--r-- 1 root root 0 Aug 5 06:09 /data/filey.html-rw-r--r-- 1 root root 0 Aug 5 06:09 /data/filez.html显示以file开头的所有大写字母的文件名
[root@centos8 data]# ll /data/file[[:upper:]].html-rw-r--r-- 1 root root 0 Aug 5 06:06 /data/fileA.html-rw-r--r-- 1 root root 0 Aug 5 06:06 /data/fileB.html-rw-r--r-- 1 root root 0 Aug 5 06:06 /data/fileC.html-rw-r--r-- 1 root root 0 Aug 5 06:06 /data/fileD.html-rw-r--r-- 1 root root 0 Aug 5 06:06 /data/fileE.html-rw-r--r-- 1 root root 0 Aug 5 06:06 /data/fileF.html-rw-r--r-- 1 root root 0 Aug 5 06:06 /data/fileG.html-rw-r--r-- 1 root root 0 Aug 5 06:06 /data/fileH.html-rw-r--r-- 1 root root 0 Aug 5 06:06 /data/fileI.html-rw-r--r-- 1 root root 0 Aug 5 06:06 /data/fileJ.html-rw-r--r-- 1 root root 0 Aug 5 06:06 /data/fileK.html-rw-r--r-- 1 root root 0 Aug 5 06:06 /data/fileL.html-rw-r--r-- 1 root root 0 Aug 5 06:06 /data/fileM.html-rw-r--r-- 1 root root 0 Aug 5 06:06 /data/fileN.html-rw-r--r-- 1 root root 0 Aug 5 06:06 /data/fileO.html-rw-r--r-- 1 root root 0 Aug 5 06:06 /data/fileP.html-rw-r--r-- 1 root root 0 Aug 5 06:06 /data/fileQ.html-rw-r--r-- 1 root root 0 Aug 5 06:06 /data/fileR.html-rw-r--r-- 1 root root 0 Aug 5 06:06 /data/fileS.html-rw-r--r-- 1 root root 0 Aug 5 06:06 /data/fileT.html-rw-r--r-- 1 root root 0 Aug 5 06:06 /data/fileU.html-rw-r--r-- 1 root root 0 Aug 5 06:06 /data/fileV.html-rw-r--r-- 1 root root 0 Aug 5 06:06 /data/fileW.html-rw-r--r-- 1 root root 0 Aug 5 06:06 /data/fileX.html-rw-r--r-- 1 root root 0 Aug 5 06:06 /data/fileY.html-rw-r--r-- 1 root root 0 Aug 5 06:06 /data/fileZ.html系统中内置了别名l.,其含义是列出当前目录的隐藏文件
[root@centos8 data]# alias l.alias l.='ls -d .* --color=auto'加上目录就能查看指定目录的隐藏文件
[root@centos8 data]# ls -d /data/.*/data/. /data/.. /data/.txt列出指定目录的文件夹
[root@centos7 ~]# ls -d /*通配符的综合案例1.显示/dta目录下所有以a开头,以一个小写字母结尾,且中间出现至少一位数字的文件或目录
[root@centos8 data]# touch a9j[root@centos8 data]# ll /data/a*[[:digit:]]*[[:lower:]]-rw-r--r-- 1 root root 0 Aug 5 06:49 /data/a9j2.显示/data目录下以任意一位数字开头,且以非数字结尾的文件或目录
[root@centos8 data]# ll /data/[[:digit:]]*[^[:digit:]]-rw-r--r-- 1 root root 0 Aug 5 06:45 /data/1mxx3.显示/data目录下以非字母开头,后面跟了一个字母及其它任意长度任意字符的文件或目录
[root@centos8 data]# touch 1mxx[root@centos8 data]# ll /data/[^[:alpha:]][[:alpha:]]*-rw-r--r-- 1 root root 0 Aug 5 06:45 /data/1mxx4.显示/data目录下所有以rc开头,并后面是0-6之间的数字,其它为任意字符的文件或目录
[root@centos8 data]# mkdir rc01[root@centos8 data]# ll -d /data/rc[0-6]*drwxr-xr-x 2 root root 6 Aug 5 06:40 /data/rc01




欢迎光临 嵌入式开发交流网论坛 (http://www.dianzixuexi.com/bbs/) Powered by Discuz! X3.2