在 Shell 中执行命令时会先进行预处理,将通配符替换成匹配的文件或目录,如果没有找到匹配,则将通配符当成普通字符处理。

通配符wildcar

符号

意义

*

代表0个到无穷多个任意字符

?

代表一定有一个任意字符

[]

同样代表一定有一个在中括号内的字符(非任意字符)。例如[abcd]代表一定有一个字符,可能是a,b,c,d这四个任何一个

[-]

若有减号在中括号时,代表在编码顺序内的所有字符。例如[0-9]代表09之间的所有数字,因为数字的语系编码是连续的

[^]

任意中括号内的第一个字符为指数符号(^),那表示反向选择,例如[^abc]代表一定有一个字符,只要是非a,b,c的其他字符就接受的意思。

{}

表示一个范围:{..}

[root@www ~]#  echo {a..d}a b c d[root@www ~]#  echo {1..10}1 2 3 4 5 6 7  8 9 10

表示至少有两个以上的组合:使用逗号分隔字符集 {,}

[root@www ~]# echo a{b,c,d}ab ac ad
[root@www ~]# mkdir -v a{,b}mkdir: created directory `a'mkdir: created directory `ab'