Linux Shell模式匹配运算符(小白也能轻松掌握的通配符使用指南)

V5主机测评

在 Linux 系统中,Shell 是我们与操作系统交互的重要工具。而模式匹配(Pattern Matching)则是 Shell 中一个非常实用的功能,尤其在处理大量文件时能极大提高效率。本文将从零开始,手把手教你掌握 Linux Shell 中的模式匹配运算符,即使你是刚接触 Linux 的小白,也能轻松上手!

Linux Shell模式匹配运算符(小白也能轻松掌握的通配符使用指南)

什么是 Shell 模式匹配?

Shell 模式匹配是指使用特定符号(称为通配符)来代表一组文件名或字符串。这种机制常用于命令行中,比如 lscprm 等命令,帮助我们一次性操作多个文件,而无需逐个输入文件名。

常用的 Shell 模式匹配运算符

以下是 Linux Shell 中最常用的几种模式匹配运算符:

1. 星号 * —— 匹配任意字符(包括空字符)

* 是最常用的通配符,它可以匹配任意数量的任意字符(包括零个字符)。

# 列出当前目录下所有 .txt 文件ls *.txt# 删除所有以 log 开头的文件rm log*# 复制所有文件到 backup 目录cp * backup/  

2. 问号 ? —— 匹配任意单个字符

? 只能匹配一个任意字符,不能多也不能少。

# 列出文件名由三个字符组成且扩展名为 .log 的文件ls ???.log# 匹配 file1.txt、file2.txt,但不匹配 file10.txtls file?.txt  

3. 方括号 [ ] —— 匹配指定范围内的单个字符

方括号用于匹配其中列出的任意一个字符。你还可以使用连字符 - 表示范围。

# 匹配以 a、b 或 c 开头的文件ls [abc]*# 匹配数字 1 到 5 开头的文件ls [1-5]*# 匹配小写字母开头的文件ls [a-z]*  

4. 花括号 { } —— 生成多个字符串(不是严格意义上的模式匹配,但常配合使用)

花括号用于生成多个参数,常用于创建多个文件或目录。

# 创建 file1.txt、file2.txt、file3.txttouch file{1,2,3}.txt# 复制文件到多个目录cp report.txt /backup/{mon,tue,wed}/  

注意事项与常见误区

  • 模式匹配由 Shell 解释,而不是由命令本身处理。例如,ls *.txt 实际上是 Shell 先找出所有 .txt 文件,再把它们作为参数传给 ls
  • 如果没有任何文件匹配模式,某些 Shell(如 Bash)会原样输出该模式(除非启用了 nullglob 选项)。
  • 通配符 不等于正则表达式!虽然看起来相似,但它们的语法和用途完全不同。模式匹配主要用于文件名,而正则表达式用于文本内容匹配。

实战小练习

假设你有一个目录,里面包含以下文件:

data1.csvdata2.csvdata10.csvreport_jan.pdfreport_feb.pdfnotes.txtbackup.tar.gz  

请尝试写出以下命令:

  1. 列出所有 CSV 文件 → ls *.csv
  2. 列出 data1.csv 和 data2.csv(但不包括 data10.csv)→ ls data?.csv
  3. 列出一月和二月的报告 → ls report_{jan,feb}.pdfls report_[jf]*.pdf

结语

掌握 Linux Shell 模式匹配通配符文件名匹配Shell 脚本 中的基础技巧,不仅能提升你的命令行效率,还能为后续学习自动化脚本打下坚实基础。多加练习,你会发现这些看似简单的符号其实威力无穷!

祝你在 Linux 的世界里越走越远!

文章版权声明:除非注明,否则均为V5主机测评网_性价比VPS_性价比云服务器_免费独立服务器原创文章,转载或复制请以超链接形式并注明出处。