Menu
CoddyTech

组合使用通配符

本课属于 Coddy Terminal 学习旅程的“基础知识”单元。第 28 课,共 82 课。

通配符真正的强大之处在于你可以将它们组合起来。你可以在一个模式中混合使用 *、? 和 [],从而精确匹配文件。

给定此文件系统:

photo_1.jpg
photo_2.jpg
photo_10.jpg
photo_1.png
photo_2.png
report_1.txt
report_2.txt
notes.txt

组合使用 * 和 []:

列出所有图片文件(包括 .jpg 和 .png):

ls *.{jpg,png}    # 使用花括号展开
ls *.[jp]*        # 匹配 .jpg、.png、.jpeg 等文件

组合使用 ? 和 []:

只列出个位数编号的照片文件:

ls photo_[0-9].jpg   # 只匹配 photo_1.jpg 和 photo_2.jpg

将这三种方式结合起来:

匹配文件名中带有一位数字的任意报告文件:

ls *_[0-9].txt     # 匹配 report_1.txt 和 report_2.txt

匹配以任意字母开头,后面跟着特定字符的文件:

ls [pr]*_?.txt    # 以 p 或 r 开头,后面是任意内容,再接下划线、一个字符和 .txt

将通配符与其他命令搭配使用:

将所有个位数的 jpg 照片移动到一个文件夹中:

mv photo_[0-9].jpg archive/

删除任意子文件夹中的所有 .log 文件:

rm */*.log
challenge icon

挑战

简单

组合使用通配符,只列出编号为一位数字的 .jpg 照片文件,例如 photo_1.jpg 和 photo_2.jpg,但不包括 photo_10.jpg 或任何 .png 文件。

提示:将固定文本 photo_、表示一位数字的方括号范围和 .jpg 扩展名组合成一个模式。

亲手试试

终端
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

基础知识中的所有课

自己练习: Terminal 在线编辑器