Shell中的通配符

  shell常见的通配符,注意与正则稍有不同:

字符 含义 实例
* 匹配0个或多个任意字符

a*b,a与b之间可以有任意长度的字符,也可以没有。

例如:aabcb,ab,azxcb...

? 匹配一个任意字符

a?b,a与b之间必须但也只能存在一个字符,该字符可以是任意字符。

例如:aab,abb,acb...

[list] 匹配list中的任意单个字符

a[xyz]b,a与b之间必须但也只能存在一个字符,该字符只能是x或y或z。

例如:axb,ayb,azb

[!list] 匹配除list中的任意单个字符

a[!a-z]b,a与b之间必须但也只能存在一个字符,该字符不能是小写字母。

例如:aAb,a0b...

[c1-c2] 匹配c1-c2间的任意单个字符

a[0-1]b,a与b之间必须但也只能存在一个字符,该字符只能是数字。

例如:a0b,a1b...

{string1,string2,...} 匹配string1、string2等中的一个字符串

a{abc,xyz,opq}b,a与b之间必须但也只能存在一个字符串,字符串只能是abc或xyz或opq。

例如:aabcb,axyzb,aopqb...

  实例:

[root@youxi1 ~]# ls /etc/*.conf
/etc/asound.conf  /etc/kdump.conf      /etc/man_db.conf    /etc/sudo-ldap.conf
/etc/chrony.conf  /etc/krb5.conf       /etc/mke2fs.conf    /etc/sysctl.conf
/etc/dracut.conf  /etc/ld.so.conf      /etc/nsswitch.conf  /etc/vconsole.conf
/etc/e2fsck.conf  /etc/libaudit.conf   /etc/resolv.conf    /etc/yum.conf
/etc/fuse.conf    /etc/libuser.conf    /etc/rsyslog.conf
/etc/GeoIP.conf   /etc/locale.conf     /etc/sestatus.conf
/etc/host.conf    /etc/logrotate.conf  /etc/sudo.conf
[root@youxi1 ~]# ls /etc/???.conf
/etc/yum.conf
[root@youxi1 ~]# touch file{1,2,3}
[root@youxi1 ~]# ls file*
file1  file2  file3
[root@youxi1 ~]# ls file[123]
file1  file2  file3

  

posted @ 2019-10-16 09:44  苦逼运维  阅读(7871)  评论(0编辑  收藏  举报