通配符是由shell处理的, 它只会出现在 命令的“参数”里
当shell在“参数”中遇到了通配符时,shell会将其当作路径或文件名去在磁盘上搜寻可能的匹配:若符合要求的匹配存在,则进行代换(路径扩展);否则就将该通配符作为一个普通字符传递给“命令”,然后再由命令进行处理。
字符 | 含义 | 语法 | 解释 | 实例 |
---|---|---|---|---|
* | 匹配0个或多个字符 | a*b | ab之间可以有任意长度的任意字符,也可以没有 | Aback, axyb, ab |
? | 匹配任意一个字符 | a?b | ab之间有且只有一个任意字符 | aab, abb, a0b |
[list] | 匹配list中任意单一字符 | a[xyz]b | ab之间只能有一个字符,在xyz中选取 | axb,ayb, azb |
[!list] | 匹配除了list中的任意单个字符 | a[!0-9]b | ab之间必须有且只有一个字符,不能是数字 | axb, |
[c1-c2] | 匹配c1-c2中的任意单一字符 | a[0-9]b | 必须有0-9之间的一个字符 | a0b, a9b |
匹配string1或者string2或更多(中间不能有空格) | ab之间只能 是abc或者123 | 1 |