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