linux通配符详解
linux中常用的通配符:
通配符 | 作用 |
---|---|
* | 匹配0个或多个任意字符 |
? | 匹配任意单个字符 |
[abc] | 匹配abc中的任意单个字符 |
[!abc] | 匹配除abc中的任意单个字符 |
[a-z] | 匹配a-z中任意单个字符(难点) |
{string1,string2,…} | 匹配string1,string2,或更多字符串 |
案例及详解
前提条件:
有file.jpg,file1.jpg,file2.jpg…file14.jpg共15个文件
ll file*.jpg可查询出所有文件
ll file?.jpg
查询结果为9个文件,因为’?'是匹配任意单个字符,单个即一个,file.jpg为0个,而file10.jpg、file11.jpg…中10和11是两个字符,所以不匹配
ll file[123].jpg
ll file[!123].jpg
匹配除123的任意单个字符,因11、12、13等不是单个字符,所以不被匹配
ll file[1-14].jpg
结果是两个而不是十四个,因‘[]’是匹配单个字符,即可匹配1-1组中字符和4,1-1中只有1
ll file[1-34].jpg
可匹配1-3或4,1-3中可选1、2、3,故共四个
ll file[2-14].jpg
可匹配2-1或4,2-1为0个,故只匹配4
ll file{1,2,3,14}.jpg
'{}'为匹配多个字符串,以‘,’分隔
ll file{1…14}.jpg
特殊用法,匹配1、2、3…14共14个,必须是’…’