元字符 | 说明 |
---|---|
* | 匹配除了斜杠(/)之外的所有字符。Windows上是斜杠(/)和反斜杠(\) |
** | 匹配零个或多个目录及子目录。不包含 . 以及 .. 开头的。 |
? | 匹配任意单个字符。 |
[seq] | 匹配 seq 中的其中一个字符。 |
[!seq] | 匹配不在 seq 中的任意一个字符。 |
\ | 转义符。 |
! | 排除符。 |
?(pattern_list) | 匹配零个或一个在 pattern_list 中的字符串。 |
*(pattern_list) | 匹配零个或多个在 pattern_list 中的字符串。 |
+(pattern_list) | 匹配一个或多个在 pattern_list 中的字符串。 |
@(pattern_list) | 匹配至少一个在 pattern_list 中的字符串。 |
!(pattern_list) | 匹配不在 pattern_list 中的字符串. |
[:alnum:] | 匹配单个字母或数字 |
[:alpha:] | 匹配单个字母 |
[:digit:] | 匹配单个数字 |
[:lower:] | 匹配单个小写字母 |
[:upper:] | 匹配单个大写字母 |
[abc] | 匹配a或b或c字符 |
[...] | POSIX style character classes inside sequences. |
- 星号(*)匹配零个或多个任意字符
- [abc] 匹配任何一个列在方括号中的字符。这个例子要么匹配一个a,要么匹配一个b,要么匹配一个c
- 问号(?)只匹配一个任意字符
- 如果在方括号中使用短划线分隔两个字符,表示所有在这两个字符范围内的所有字符(如,[0-3a-c]和[0123abc]是等价的)
- 使用两个星号(*) 表示匹配任意中间目录。比如
a/**/z
可以匹配a/z
,a/b/z
或a/b/c/z
等
匹配 | 模式 |
---|---|
所有文件 | * |
以g开头的任意文件 | g* |
以b开头,扩展名为.txt 的文件 | b*.txt |
以Data 开头并紧接了个字符的文件 | Data??? |
以a、b、c中任意字符开头的文件 | [abc]* |
以BACKUP.开头并紧接3个数字的文件 | BACKUP.[0-9][0-9][0-9] |
以单个大写字母开头的文件 | [[:upper:]]* |
不以数字开头的文件 | [![:digit:]]* |
以小写字母或 1、2、3中任意数宇结尾的文件 | *[[:lower:]123] |