当我们需要查找所需文件时,shell提供了一套完整的字符串模式匹配规则,或者称之为元字符。还可以使用字符类型来匹配文件名。
1.匹配文件名中的任何字符
2.匹配文件名中的单个字符
3.匹配文件名中的字母或数字字符
特殊字符:
* 匹配文件名中的任何字符串,包括空字符串
? 匹配文件名中的任何单个字符
[...] 匹配[]中所包含的任何字符
[!...]匹配[]中非感叹号之后的字符
1. *
匹配文件名中的任何字符串
下面命令意思是列出所有以app开头的文件 后面可以跟随任何字符串 包括空字符串
#ls app*
下面命令意思是列出所有以a开头 后面是任何字符 以.txt结尾的文件
#ls a*.txt
2 ?
匹配单个字符
下面命令意思 前面两位可以是任意字符开头 接着是d 的三位文件名
#ls ??d
pwd red sed
下面命令意思 前面两位可以是任意字符开头 接着是d 后面可以是任意字符
#ls ??d*
kbd_mode mkdir pwd red redhat_lsb_init rmdir sed ypdomainname
3 [...] [!...]
下面命令意思是 列出所有r开头的文件
#ls [r]*
下面命令意思是 列出所有s或v开头的文件
#ls [sv]*
sed setfont setserial sh sleep sort stty su sync vi view
下面命令意思是 列出所有以log开头 后面跟上一个数字 接着跟上任意字符的文件
# ls log[0-9]*
下面命令意思是 列出所有以log开头 后面跟上一个非数字 接着跟上任意字符的文件
# ls log[!0-9]*
下面命令意思是以log开头 后面跟上两个字符 接着跟上1 然后是任意字符的文件
#ls log??[1]*
列出所有大写开头的文件
#ls [A-Z]*
列出所有小写开头的文件
#ls [a-z]*
列出所有数字开头的文件
#ls[0-9]*