linux通配符(linux
Linux通配符(Linux——有这些通配符更方便!)
序
shell中提供了一些特殊字符来帮助我们快速找到一组指定的文件(目录)。这些特殊字符称为通配符。通配符可以使shell编程更容易。
常见通配符
1) *
匹配任意数量的字符(包括0)。这也是我们最常用的一个。它可以匹配所有文件(目录)名称。
2) ?
匹配任意单个字符(必须有一个,没有也不行)。这样可以让我们更精准的匹配。*匹配的还是很多的。
3)[字符]
匹配属于字符集的任何字符,chars表示一组字符。
4) [!字符]
匹配任何不属于字符集的字符,chars代表一组字符!倒置。
5) [[:class:]]
匹配属于指定字符类的字符。【:class:】表示字符类,如数字、大小写字母等。
常见字符类别:
[:alnum:]:匹配任何字母或数字,用传统的UNIX: a-zA-Z0-9书写。
[:alpha:]:匹配任何用传统UNIX: A-ZA-Z书写的字母。
[:digit:]:匹配任何数字。传统UNIX写作:0-9
[:lower:]:匹配任何小写字母。传统UNIX写作:A-Z。
[:upper:]:匹配任何大写字母,用传统的UNIX: A-Z书写。
例子
Ls * #匹配所有文件(目录)
Ls g* #匹配任何以g开头的文件(目录)。
Ls *。txt #匹配以a开头并以结尾的文件(目录)。文本文件(textfile)
ls data_???#匹配数据开头的文件(目录),后跟三个字符
Ls [abc]* #匹配以任何abc字符开头的文件(目录)。
ls backup[[:digit:]][[:digit:]][[:digit:]]#匹配backup开头后面三位数的文件(目录)也会写成backup[0-9][0-9][0-9],也是可以的。这是传统的UNIX书写方法。
Ls [[:upper:]]* #匹配以大写字母开头的文件(目录)
ls [![:digit:]]* #匹配不以数字开头的文件(目录)
Ls *[[:lower:]123] #匹配以小写字母或1、2、3