假如你的工作目录下有下列12个图片文件和1个文本文件:
file1.jpg
file2.jpg
file3.jpg
file4.jpg
file5.jpg
file6.jpg
file7.jpg
file8.jpg
file9.jpg
file10.jpg
file11.jpg
file12.jpg
file1.txt
在命令行中可以使用通配符来完成批量处理的任务(如使用rm命令删除上述文件),通配符可以通过字符匹配一次指定多个文件。
有三个通配符:*(星号)、?(问号)和[](方括号)。
“*”匹配0或多个任意字符。
表1 “*”通配符及其匹配的内容
命 令 | 匹 配 |
rm file1*.jpg | file10.jpg到file12.jpg,但不匹配file1.txt |
rm file*.jpg | file1.jpg到file12.jpg,但不匹配file1.txt |
rm *txt | file1.txt,但不匹配file1.jpg到file12.jpg |
rm file* | file1.jpg到file12.jpg,以及file1.txt |
rm * | 目录中的所有文件 |
“?”匹配单个字符。
表2 “?”通配符及其匹配的内容
命 令 | 匹 配 |
rm file1?.jpg | file10.jpg到file12.jpg,但不匹配file1.txt |
rm file?.jpg | file1.jpg到file9.jpg,但不匹配file10.jpg |
rm file?.* | file1.jpg到file9.jpg,以及file1.txt |
“[]”可以匹配一组单个字符,或者是匹配用连字符(“-”)指定的某一范围内的字符。
表3 “[]”通配符及其匹配的内容
命 令 | 匹 配 |
rm file1[12].jpg | file11.jpg到file12.jpg,但不匹配file10.jpg |
rm file1[0-2].jpg | file10.jpg到file12.jpg,但不匹配file1.jpg |
rm file[6-8].jpg | file6.jpg到file8.jpg,但不匹配其他文件 |