Linux中使用命令行时,有时需要查找所需要的文件。Shell提供了一套字符串模式匹配规则,或称之为元字符串。可以按照所要求的模式来匹配文件,还可以使用字符类型来匹配文件名。在此主要介绍几种常见的特殊字符:
1、* 匹配文件名中的任何字符串,包括空字符串;
2、? 匹配文件名中的任何单字符串
3、[….] 匹配[]中所包含的任何字符串
4、[!….]匹配[]中非感叹号!之后的字符。
元字符 *
使用星号 * 可以匹配文件名中的任何字符串。如文件名模式 app*,表示文件名以app开头,后面可以跟任何字符串。
$ls app*
表示以app开头,后面可以跟任何字符串的文件
$ls *.doc
表示以doc结尾的任何文件名
元字符串 ?
使用?可以匹配文件名中的任何单个字符。
$ls ??R*
匹配第3个字符为R的字符串
元字符串[…] 和 [!...]
使用[…]可以用来匹配方括号[]中的任何字符。在该方法中,可以用一个横杠--来连接两个字母或数字,以此来表示一个范围。
$ls [io]*
表示列出以i或o开头的文件名。
$ls log.[0-9]*
表示列出以log.开头,后面带任意个数字的文件名
[!...]表示的是非的意思
$ls log.[!0-9]*
表示列出所以以非数字开头的字符串。