跳到主要内容

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