Linux——字符通配符

Posted 0715mmmm

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux——字符通配符相关的知识,希望对你有一定的参考价值。

当我们使用 命令ls 来查看目录或文件时,有时只需要查看特定的目录或文件,这个时候便需要使用文件名通配符,也称字符通配符。

在这里需要特别说明,在cd /etc/后,转到etc目录下,使用 ls时,需要加上 选项 –d 这样结果显示目录名或文件名,不会将目录展开显示。也可不加。

至于对ls命令的用法想了解的可自行查找。

接下来,我将对通配符通过举例来进行解释说明。

 

1.)    * :用来匹配0或多个任意字符

例如: ls  *  查找/etc下的任意字符的文件或目录

[[email protected] etc]# ls -d *
3dkdj                    maven
3fgfj                    mime.types
3fgfj[]                  mke2fs.conf
3jsjdl[]                 modprobe.d
abrt                     motd
acpi                     mtab

 



 

2.)  ? :匹配任意1个字符,即一个字符匹配一个字符

例如 :ls  ???  查找/etc下的长度为任意三个字符的文件或目录

[[email protected] etc]# ls -d ???
253  786  hal  jvm  lvm  opt  ppp  rpm  ssh  X11  xml
333  gdm  ipa  kde  ntp  pki  rpc  scl  ssl  xdg  yum

 


 

3.)  [0-9]  :一个[0-9]只表示一个0-9之间的数字


例如 :ls  [0-9] [1-2][0-9] 3[0-9]使用touch {1..100} 创建1到100这100个文件,显示1-35

[[email protected] etc]# ls  [0-9] [1-2][0-9] [3][0-5]
1   11  13  15  17  19  20  22  24  26  28  3   31  33  35  5  7  9
10  12  14  16  18  2   21  23  25  27  29  30  32  34  4   6  8

 


 

4.) [a-z] : 表示aAbBcC……z,无法显示Z

         [A-Z]:  表示AbBcC……Z,无法显示z

         [a-Z] : 表示所有大小写字母

eg: 查找/etc 目录下 开头为任意字母的长度为三的文件或目录

[[email protected] etc]# ls -d [a-z]??
gdm  ipa  kde  ntp  pki  rpc  scl  ssl  xdg  yum
hal  jvm  lvm  opt  ppp  rpm  ssh  X11  xml

 

 

 

5.) [ae] : 表示是a或e的单一字符

        [^ae] :表示即不是a也不是e的其他任意单一字符

eg:    只显示/etc下的非隐藏目录

[[email protected] etc]# ls  -d /[^.]*
/app   /lib64       /proc     /tmp
/bin   /lost+found  /root     /usr
/boot  /media       /sbin     /var
/dev   /misc        /selinux  /VMwareTools-10.1.6-5214329.tar.gz
/etc   /mnt         /srv      /vmware-tools-distrib
/home  /net         /sys
/lib   /opt         /testdir

 

eg: 只显示用户家目录下的非隐藏目录

 1 [[email protected] ~]# ls -1 /home/[^.]*
 2 /home/centos:
 3 Desktop
 4 Documents
 5 Downloads
 6 Music
 7 Pictures
 8 Public
 9 Templates
10 Videos
11 
12 /home/www:

 


 

 

6.) [:lower:]: 表示小写字母
        [:upper:]:表示大写字母
        [:alpha:]: 表示大小写字母

eg:      显示/etc目录下,文件名至少包含一个小写字母和一个数字并以.conf结尾的文件或目录

(ps:选项-1为将ls 查找的结果单项列出)

1 [[email protected] ~]#  ls -d1 /etc/*[[:lower:]]*[0-9]*.conf
2 /etc/krb5.conf
3 /etc/mke2fs.conf
4 /etc/pbm2ppa.conf
5 /etc/pnm2ppa.conf

 

 

 

 

7.) [:digit:] :表示任意数字 等于0-9
        [:alnum:]: 表示任意字母及数字 等于a-Z0-9或用[[:digit:][:alpha:]]来表示

eg:显示/etc目录下,所有以一个大写字母开头,以两个数字结尾的文件或目录

1 [[email protected] ~]# ls -d1 /etc/[[:upper:]]*[[:digit:]][[:digit:]]
2 /etc/Kdhu67
3 /etc/Ldf88
4 /etc/S0099
5 /etc/Sdjfdjg988
6 /etc/Sdjfdjg9897
7 /etc/X11

 

eg:显示/var/log目录下文件名包含符号及数字的文件或目录

 1 [[email protected] ~]# ls -d1  /var/log/*[[:punct:]]*[[:digit:]]*
 2 /var/log/btmp-20191120
 3 /var/log/cron-20191120
 4 /var/log/maillog-20191120
 5 /var/log/messages-20191120
 6 /var/log/secure-20191120
 7 /var/log/spooler-20191120
 8 /var/log/vmware-vgauthsvc.log.0
 9 /var/log/Xorg.0.log
10 /var/log/Xorg.0.log.old
11 /var/log/Xorg.9.log

 

 

8.)[:blank:]:水平空白字符
       [:space:]:水平或垂直空白字符 文件名不可能包含回车,故此处使用与[:blank:]:效果相同


9.)[:punct:]: 表示符号

  使用方法见用法7中的例题。

 












以上是关于Linux——字符通配符的主要内容,如果未能解决你的问题,请参考以下文章

linux中的通配符元字符转义符

linux 通配符元字符和特殊字符

Linux Shell之通配符转义字符元字符

Linux通配符与特殊符号知识大全汇总

Linux通配符与特殊符号知识大全汇总

Linux文件通配符