* 匹配任意长度的任意字符
? 匹配任意单个字符
[0-9] 匹配所有数字
[ ] 匹配指定范围内的任意单个字符
[^] 匹配指定范围外的任意单个字符
[wxc] 匹配列表中的任何的一个字符
[^wxc] 匹配列表中的所有字符以外的字符
预定义的字符类:#man 7 glob
[[:digit:]]:任意数字,相当于0-9
[[:lower:]]:任意小写字母
[[:upper:]]: 任意大写字母
[[:alpha:]]: 任意大小写字母(包括大小写)
[[:alnum:]]:任意数字或字母
[[:space:]]:空格和Tab
[[:punct:]]:标点符号
匹配指定范围外的任意单个字符
[^[:upper]]
[^0-9]
[^[:alnum]]
练习:
1、显示/var目录下所有以l开头,以一个小写字母结尾,且中间出现至少一位数字的文件或目录
ls /var/l*[0-9]*[[:lower]]
2、显示/etc目录下以任意一位数字开头,且以非数字结尾的文件或目录
ls /etc/[0-9]*[^0-9]
3、显示/etc/目录下以非字母开头,后面跟了一个字母及其它任意长度任意字符的文件或目录
ls /etc/[^[:alpha:]][[:alpha:]]*
4、显示/etc目录下所有以m开头以非数字结尾的文件或目录
ls /etc/m*[^0-9]
5、显示/etc目录下,所有以.d结尾的文件或目录
ls /etc/*.d
6、显示/etc目录下,所有.conf结尾,且以m,n,r,p开头的文件或目录
ls /etc/[mnrp]*.conf
原文地址:http://keithtt.blog.51cto.com/3080111/1813942