通配符是由shell处理的, 它只会出现在 命令的“参数”里。当shell在“参数”中遇到了通配符时,shell会将其当作路径或文件名去在磁盘上搜寻可能的匹配:若符合要求的匹配存在,则进行代换(路径扩展);否则就将该通配符作为一个普通字符传递给“命令”,然后再由命令进行处理。总之,通配符 实际上就是一种shell实现的路径扩展功能。在 通配符被处理后, shell会先完成该命令的重组,然后再继续处理重组后的命令,直至执行该命令。
常见的通配符有:
? | 匹配一个字符 f?.txt |
* | 匹配所有非隐藏的字符无论多长多短,但不匹配 "." 开头的文件,即隐藏文件 |
{1..10} {0..9} | 1到10 |
{a..z} | a b c ...z |
{A..Z} | A B C .....Z |
[123]([此处括号里值代表一个字符]) | 取其中之一有就显示没有也无所谓 |
[a-z]单个小写字母 | 范围需要注意 |
[0-9]单个数字 | 匹配数字范围(0123456789) |
\ | 转义符,表示原来的意思 |
[[:lower:]] | 小写字母表示 a-z |
[[:upper:]] | 大写字母表示 A-Z |
[^zhou] | 匹配列表中的所有字符以外的字符 |
[[:digit:]] | 任意数字,相当于0-9 |