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看清到底匹配了哪些。
小结:* 管任意多,? 管单个,[] 管范围,{} 管列举。它们是批量操作的利器。