通配符 | 含义 | 例子 |
---|---|---|
* | 匹配零个或多个字符 | *.txt 匹配所有扩展名为 .txt 的文件 |
? | 匹配一个任意字符 | file?.txt 匹配 file1.txt 、fileA.txt 等文件 |
[] | 匹配指定范围内的一个字符 | file[1-3].txt 匹配 file1.txt 、file2.txt 、file3.txt |
[^] | 匹配不在指定范围内的一个字符 | file[^1].txt 匹配 file2.txt 、fileA.txt 等(不匹配 file1.txt ) |
{} | 匹配一组指定的字符串中的任意一个 | file{1,2,3}.txt 匹配 file1.txt 、file2.txt 、file3.txt |
\ | 转义字符,用于取消特殊字符的特殊含义 | \* 匹配星号字符 * ,而不是任意字符的通配符 |
~ | 代表当前用户的家目录(也可以表示其他用户的家目录) | ~ 表示 /home/username (当前用户的家目录) |
** | 在某些工具(如 bash 和 zsh )中,表示匹配零个或多个目录 | **/*.txt 匹配所有目录及其子目录下的 .txt 文件 |
说明:
*
匹配零个或多个字符,可以匹配任何类型的文件。?
只能匹配一个字符,非常适合用来查找一个特定位置的字符。[]
用于匹配范围或指定字符集合中的字符,[^]
匹配不在指定范围内的字符。{}
用于指定多个选项,匹配其中任意一个。\
用于对特殊字符进行转义,取消它的通配符功能。~
表示当前用户的家目录,常用于路径操作。**
只有在支持该语法的工具(如bash
)中才有效,用于递归匹配多级目录下的文件。