通配符
Linux中通配符主要有以下几个:
* 星号匹配0个或多个字符,如 a*b
?问号只匹配一个字符,如 a?
[list] 匹配list中的任意一个字符,如 a[abc]b
[!list] 不匹配list中的任意一个字符,如 a[!abc]b
[c1-c2] 匹配c1到c2中的任意字符,其中c1到c2必须是连续的字符,如a[1-5]b
[string1,string2,string3,...] 匹配string1或string2或string3中的任意一个字符串
演示示例:
[root@Centos8 ~]# touch file{1..5} #先创建5个文件
[root@Centos8 ~]# touch file1a file2b #又创建了2个文件
[root@Centos8 ~]# ll file* #使用星号*匹配,匹配0个或多个字符
-rw-r--r-- 1 root root 0 May 24 23:57 file1
-rw-r--r-- 1 root root 0 May 24 23:57 file1a
-rw-r--r-- 1 root root 0 May 24 23:57 file2
-rw-r--r-- 1 root root 0 May 24 23:57 file2b
-rw-r--r-- 1 root root 0 May 24 23:57 file3
-rw-r--r-- 1 root root 0 May 24 23:57 file4
-rw-r--r-- 1 root root 0 May 24 23:57 file5
[root@Centos8 ~]# ll file? #使用?号匹配,只匹配一个字符
-rw-r--r-- 1 root root 0 May 24 23:57 file1
-rw-r--r-- 1 root root 0 May 24 23:57 file2
-rw-r--r-- 1 root root 0 May 24 23:57 file3
-rw-r--r-- 1 root root 0 May 24 23:57 file4
-rw-r--r-- 1 root root 0 May 24 23:57 file5
[root@Centos8 ~]# ll file?[ab] #使用[list]匹配,list中任意一个字符匹配成功都可以
-rw-r--r-- 1 root root 0 May 24 23:57 file1a
-rw-r--r-- 1 root root 0 May 24 23:57 file2b
[root@Centos8 ~]# ll file?[!b] #使用[!list]匹配,非list中字符的都匹配成功
-rw-r--r-- 1 root root 0 May 24 23:57 file1a
[root@Centos8 ~]# ll file?[a-b] #[a-b] 匹配a到b中的任意字符,其中a到b必须是连续的字符
-rw-r--r-- 1 root root 0 May 24 23:57 file1a
-rw-r--r-- 1 root root 0 May 24 23:57 file2b
[root@Centos8 ~]# ll file?[a,b] #[string1,string2,string3,...] 匹配string1或string2或string3中的任意一个字符串
-rw-r--r-- 1 root root 0 May 24 23:57 file1a
-rw-r--r-- 1 root root 0 May 24 23:57 file2b
[root@Centos8 ~]# ll file?["a","b"] #[string1,string2,string3,...] 匹配string1或string2或string3中的任意一个字符串
-rw-r--r-- 1 root root 0 May 24 23:57 file1a
-rw-r--r-- 1 root root 0 May 24 23:57 file2b
元字符
元字符一般用于正则表达式,