Shell 通配符
通配符
Shell 命令行提供了一种简短的文本模式来代表一组目标,这些符号称为通配符(wildcards),例如星号(*
)、问号(?
)、方括号([...]
)、花括号({...}
)等。利用这些通配符,可以很方便地在 shell 中查找匹配的文件路径或文本内容。
* 字符
星号 *
可以匹配任意数量的字符。例如匹配所有以 .txt 为后缀的文件。
$ ls *.txt
a.txt b.txt ab.txt
注意:在通配符里,一个星号 *
可以代表 0 个或多个任意字符。
? 字符
问号 ?
可以匹配任意单个字符。例如匹配以任意1个字符开头的 .txt 文件。
$ ls ?.txt
a.txt b.txt
匹配以任意两个字符开头的 .txt 文件。
$ ls ??.txt
ab.txt
[...] 模式
方括号 [...]
可以匹配任意单个指定的字符。例如匹配名为 a 或 b 的 .txt 文件。
$ ls [ab].txt
a.txt b.txt
方括号 [! ]
可以匹配任意除指定的字符之外的单个字符。
$ ls [!a].txt
b.txt
{...}
模式
花括号 {...}
表示匹配里面的所有模式,模式之间使用逗号分隔。
$ ls {a,b}.txt
a.txt b.txt