1.5.6. Shell 通配符
经常有这种情况你期望命令成串自动执行而不需要挨个输入,将文件名扩展为 glob,(有时候被称为 通配符),以此来满足这方面的需求。
表 1.20. Shell glob 模式
shell glob 模式 | 匹配规则描述 |
---|---|
| 不以 “. “ 开头的文件名(段) |
. | 以 “. “ 开头的文件名(段) |
? | 精确字符 |
[…] | 包含在括号中的任意字符都可以作为精确字符 |
[a-z] | “a “ 到 “z “ 之间的任意一个字符都可以作为精确字符 |
[^…] | 除了包含在括号中的任意字符 ( “ 1^ 2”除外 ),其它字符都可以作为精确字符 |
尝试下列例子
$ mkdir junk; cd junk; touch 1.txt 2.txt 3.c 4.h .5.txt ..6.txt
$ echo *.txt
1.txt 2.txt
$ echo *
1.txt 2.txt 3.c 4.h
$ echo *.[hc]
3.c 4.h
$ echo .*
. .. .5.txt ..6.txt
$ echo .*[^.]*
.5.txt ..6.txt
$ echo [^1-3]*
4.h
$ cd ..; rm -rf junk
参见 glob(7)。
注意 | |
---|---|
与 shell 通用的文件名匹配方式不同, 使用 “ |
注意 | |
---|---|
BASH 可以使用内置的 shopt 选项如 “ |