Linux 终端通配符示例入门

假设您当前目录的ls结果如下:

libby1.jpg
libby2.jpg
libby3.jpg
libby4.jpg
libby5.jpg
libby6.jpg
libby7.jpg
libby8.jpg
libby9.jpg
libby10.jpg
libby11.jpg
libby12.jpg
libby1.txt

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

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

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

表1-2 “*”通配符及其匹配的内容

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

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

表1-3 “?”通配符及其匹配的内容

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

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

表1-4 “[ ]”通配符及其匹配的内容

命  令匹  配
rm libby1[12].jpglibby11.jpg到libby12.jpg,但不匹配libby10.jpg
rm libby1[0-2].jpglibby10.jpg到libby12.jpg,但不匹配libby1.jpg
rm libby[6-8].jpglibby6.jpg到libby8.jpg,但不匹配其他文件
相关的文章:

暂无评论

写评论