-
*
- 匹配 任意多个字符
- 例子
* 所有文件
g* 以g开头的所有文件
b*.txt 以b开头的txt文件
- 注意
*不能匹配以点号开头的文件(即隐藏文件)
- 若要匹配,请使用
.[!.]*这种模式
- 但这个只是匹配出 一个点号加后面非点号 的文件,忽略了
.和..这两个,而且无法列出多个点号开头的隐藏文件
- 建议使用
ls -A,可以完美列出
-
?
- 匹配 任意单个字符
- 例子
Data??? 以Data开头且后面跟三个任意字符的文件
-
[字符集合]
- 匹配 属于字符集合中的 任意单个字符
- 加上感叹号的
[!字符集合] ,表示不属于
- 字符集合有两种写法
- 直接写字母或数字进去
[abc]* 以a或b或c开头的文件
BACK-[0-9][0-9] 以BACK-开头且后面跟两个数字的文件
- 注意
- 不建议使用
[a-z]这种传统linux写法,而是要用下面的字符类,因为很可能产生意料之外的结果
- 用字符类表示
[:alnum:] 字母+数字
[:alpha:] 字母
[:digit:] 数字
[:lower:] 小写字母
[:upper:] 大写字母
- 例子
[[:upper:]]* 以单个大写字母开头的文件
[![:digit:]]* 不以数字开头的文件
*[[:lower:]12] 以单个小写字母或1或2结尾的文件