centos 微软 java 开源 nginx google linux mysql shell Ubuntu Firefox Windows 程序员 php wordpress linux命令 Python Android HTML5 apache

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*.jpg libby10.jpg到libby12.jpg,但不匹配libby1.txt
rm libby*.jpg libby1.jpg到libby12.jpg,但不匹配libby1.txt
rm *txt libby1.txt,但不匹配libby1.jpg到libby12.jpg
rm libby* libby1.jpg到libby12.jpg,以及libby1.txt
rm * 目录中的所有文件

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

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

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

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

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

命  令 匹  配
rm libby1[12].jpg libby11.jpg到libby12.jpg,但不匹配libby10.jpg
rm libby1[0-2].jpg libby10.jpg到libby12.jpg,但不匹配libby1.jpg
rm libby[6-8].jpg libby6.jpg到libby8.jpg,但不匹配其他文件

延伸阅读

评论