当在使用命令行时,有很多时间都用来查找所需要的文件,shell提供了一套完整的字符串模式匹配规
则,或者称之为元字符,这样就可以按照所要求的模式来匹配文件.还可以使用字符类型来匹配文件名.
1.使用*
使用星号*可以匹配文件名中的任何字符串,在下面的例子中,给出文件名模式app*,它的意思是文
件名以app开头,后面可以跟随任何字符串,包括空字符串:
*也可以用在文件名模式的开头,如:
ls *.doc
匹配所有以.doc结尾的文件名.
*还可以用在文件名的当中,如:
ls cl*.sed
用于匹配所有以cl开头,后面跟任何字符串,最后以.sed结尾的文件名.
2.使用?
使用可以匹配文件名中的任何单个字符,如:
ls ??R*
文件名以任意两个字符开头,接着是R,后面跟任何字符的文件.
ls conf??.log
文件名以conf开头,中间是任意两个字符,最后以.log结尾的文件.
ls f??*s
所有以f开头,中间是任意两个字符,后面跟随任意字符串,并以s结尾的文件名.
3.使用[...]和[!...]
使用[...]可以用来匹配方括号[]中的任何字符.在这一方法中,还可以使用一个横杠-来连接两个
字母或数字,以此来表示一个范围.
ls [io]*
列出以i或者o开头的文件名
ls log.[0-9]*
匹配所有以log.开头,后面跟随一个数字,然后可以是任意字符串的文件名.
ls log.[!0-9]*
表示非数字开头的字符串.
为了列出所有以大写字母开头的文件名,可以用:
ls [A-Z]*
为了列出所有以小写字母开头的文件名,可以用:
ls [a-z]*
为了列出所有以数字开头的文件名,可以用:
ls .*