首页 / Linux 命令行入门教程 / 12. 通配符 * ? [] 与 {} 展开

Linux 命令行入门教程

12. 通配符 * ? [] 与 {} 展开

本教程共 90 篇 · 第 12 篇

12. 通配符 * ? [] 与 {} 展开

一次操作一批文件,靠通配符。Shell 在真正运行命令前,会先帮你把它们展开。

* 星号匹配任意多个字符(包括零个):

ls *.txt
rm log*.log

? 问号只匹配单个字符:

ls file?.txt

它能匹配 file1.txt,但匹配不了 file10.txt

[] 方括号匹配其中任一个字符,还能写范围:

ls file[123].txt
ls file[a-c].txt

{} 花括号展开不靠”匹配”,而是直接生成一组字符串:

touch file{1,2,3}.txt
mv photo.{png,jpg}

第一行一次建出三个文件;第二行把 photo.png 改名成 photo.jpg

Warning

rm * 会删光当前目录的文件,且 Linux 不留回收站。动手前先用 ls 看清到底匹配了哪些。

小结:* 管任意多,? 管单个,[] 管范围,{} 管列举。它们是批量操作的利器。