/ 写在前面 – 我热爱技术、热爱开源。我也相信开源能使技术变得更好、共享能使知识传播得更远。但是开源并不意味着某些商业机构/个人可以为了自身的利益而一味地索取,甚至直接剽窃大家曾为之辛勤付出的知识成果,所以本文未经允许,不得转载,谢谢。/
通配符及它们所选择的对象
通配符 意义------ ------* 匹配任意多个字符(0个或多个)? 匹配任意一个字符(不包括0个)[characters] 匹配任意一个属于字符集中的字符[!characters] 匹配任意一个不属于字符集中的字符[[:class]] 匹配任意一个属于指定字符类中的字符
常用的字符类
字符类 意义------ ------[:alnum:] 匹配任意一个字母或数字[:alpha:] 匹配任意一个字母[:digit:] 匹配任意一个数字[:lower:] 匹配任意一个小写字母[:upper:] 匹配任意一个大写字母
范例
Pattern 匹配对象------- -------* 所有文件g* 文件名以“g”开头的文件b*.txt 以“b”开头,中间有0个或任意多个字符,并以“.txt“结尾的文件Data??? 以”Data“开头,其后紧接着3个字符的文件名[abc]* 以”a“、”b“或”c“开头的文件名BACKUP.[0-9][0-9] 以”BACKUP.“开头,然后紧接着2个数字的文件名[[:upper:]]* 以大写字母开头的文件名[![:digit:]]* 非数字开头的文件名*[[:lower:]123] 以小写字母或“1”、”2“、“3”结尾的文件名
在Shell中,接受文件名作为参数的任何命令,都可以使用通配符。
注意: [A-Z] 、 [a-z] 这种表示法都是传统的Unix表示法,在早期的Linux版中仍然支持。不过,以后我们应当避免使用他们,使用字符类来带代替他们。
