1.5 通配符及其含义

假设你的计算机目录中有下列12个图片文件和1个文本文件:

  1. libby1.jpg
  2. libby2.jpg
  3. libby3.jpg
  4. libby4.jpg
  5. libby5.jpg
  6. libby6.jpg
  7. libby7.jpg
  8. libby8.jpg
  9. libby9.jpg
  10. libby10.jpg
  11. libby11.jpg
  12. libby12.jpg
  13. libby1.txt

你想在命令行中使用rm命令(第2章介绍)来删除这些文件,一次删除一个文件的做法既烦琐,还有些愚蠢。毕竟,使用计算机的一个原因就是它能够自动处理和简化乏味的任务。通配符可以完成这一任务,它可以通过字符匹配一次指定多个文件。

有3种通配符:*(星号)、?(问号)、和[ ](方括号)。接下来我们依次看看它们的用法。

*”匹配0或多个任意字符。表1-2列举了“*”的一些用法以及能够匹配的内容。 表1-2 “*”通配符及其匹配的内容

命  令匹  配
rm libby1*.jpglibby10.jpglibby12.jpg,但不匹配libby1.txt
rm libby*.jpglibby1.jpglibby12.jpg,但不匹配libby1.txt
rm *txtlibby1.txt,但不匹配libby1.jpglibby12.jpg
rm libby*libby1.jpglibby12.jpg,以及libby1.txt
rm *目录中的所有文件

?”匹配单个字符。表1-3列举了“?”的一些用法,以及能够匹配的内容。 表1-3 “?”通配符及其匹配的内容

命  令匹  配
rm libby1?.jpglibby10.jpglibby12.jpg,但不匹配libby1.txt
rm libby?.jpglibby1.jpglibby9.jpg,但不匹配libby10.jpg
rm libby?.*libby1.jpglibby9.jpg,以及libby1.txt

[ ]”可以匹配一组单个字符(例如,[12]),或者是匹配用连字符(“-”)指定的某一范围内的字符(例如,[1-3])。表1-4列举了“[ ]”的一些用法,以及能够匹配的内容。 表1-4 “[ ]”通配符及其匹配的内容

命  令匹  配
rm libby1[12].jpglibby11.jpglibby12.jpg,但不匹配libby10.jpg
rm libby1[0-2].jpglibby10.jpglibby12.jpg,但不匹配libby1.jpg
rm libby[6-8].jpglibby6.jpglibby8.jpg,但不匹配其他文件

本书中使用了很多通配符,所以现在介绍一下它们的用法是很有必要的。它们使在命令行中处理文件容易了很多,你一定会发现它们是多么有用。