Linux通配符是我们在服务器管理和日常操作中经常打交道的基础功能,但很多人往往只知道星号和问号,遇到复杂的文件匹配需求时就束手无策。其实掌握通配符能让你的工作效率翻倍,今天我们就从实用角度出发,聊聊这些符号在不同场景下的具体用法。

星号到底能匹配什么

星号是最常用的通配符,它代表任意长度的任意字符,包括空字符。比如我们要查找所有以txt结尾的文件,直接输入<strong>.txt就能搞定。

但要注意星号不能匹配以点开头的隐藏文件,这是新手最容易踩的坑。想匹配隐藏文件需要显式写成.</strong>,这个细节在清理系统垃圾时特别实用。

linux通配符的使用_linux通配符的使用_linux通配符的使用

实际工作中我常用星号配合rm命令清理临时文件,比如rm -rf <strong>tmp</strong>能删除所有包含tmp的文件名linux通配符的使用,比一个个删快多了。

问号匹配单个字符怎么用

问号严格匹配一个字符的位置,不像星号那样贪婪。比如file?.txt能匹配file1.txt和filea.txt,但不会匹配file10.txt,因为后面跟了两个字符。

这个特性在批量处理固定格式的文件名时特别好用。我处理过一批按日期命名的日志,格式是log20250401.txt,用log????????.txt就能精确锁定,避免误删其他文件。

linux通配符的使用_linux通配符的使用_linux通配符的使用

使用问号时要注意区分中文字符占两个字节的问题,在处理中文文件名时需要特殊对待,最好先用ls确认匹配结果。

中括号匹配数字和字母范围

中括号允许我们指定一个字符集合,比如[0-9]匹配任意数字,[a-z]匹配小写字母。这在处理编号文件时非常实用。

像备份文件经常有bak1到bak100,想删掉1到9的备份用rm bak[0-9],10以后的就不会被误伤。结合其他通配符可以玩出很多花样。

linux通配符的使用_linux通配符的使用_linux通配符的使用

有个技巧是使用[!0-9]来排除数字,这在需要过滤特定模式的文件列表时很管用。但要注意某些shell对叹号有特殊含义,可能需要转义。

花括号扩展批量生成命令

花括号不是标准的通配符,但bash等shell支持这个强大功能。它可以生成多个字符串的组合,比如{1..10}生成1到10,{a,b,c}生成a b c。

我最常用它来批量创建目录,一条mkdir -p project/{src,docs,test}就建好了整套项目结构,比逐条输入快太多了。

在处理大量相似文件名时,cp config{,.bak}这种写法堪称经典,直接备份配置文件,少打很多字。

linux通配符的使用_linux通配符的使用_linux通配符的使用

反斜杠转义特殊字符含义

当文件名本身就包含星号或问号时,需要用反斜杠取消它们的特殊含义。比如要删除一个叫<strong>.txt的文件,直接rm会匹配所有txt文件,必须写成rm </strong>.txt

我见过有人因为忘记转义而误删重要文件,所以养成先ls确认再执行的好习惯很有必要。特别是在生产环境操作时,先用echo测试匹配结果。

单引号也能起到转义作用linux通配符的使用,而且更安全。rm '<strong>.txt'就只删除这个特定文件,不会展开通配符linux多线程编程,比反斜杠更容易理解和记忆。

多个通配符组合的高级技巧

linux通配符的使用_linux通配符的使用_linux通配符的使用

实际工作中很少只用单一通配符,组合使用才能发挥最大威力。比如[A-Z]</strong>[0-9].log能匹配大写字母开头数字结尾的日志文件。

我在处理服务器日志时常用这种组合:find . -name "<strong>[0-9][0-9][0-9].log"查找三位数字编号的日志,配合定期清理脚本很顺手。

还有ls </strong>[!0-9].txt可以列出不以数字结尾的文本文件linux系统入门学习,这在分类整理文档时特别有用,能快速找出命名不规范的文件。

你在实际工作中遇到最棘手的文件批量处理场景是什么?是用什么方法解决的?欢迎在评论区分享你的实战经验,觉得有用的话记得点赞转发,让更多朋友看到这些实用技巧。

Tagged:
Author

这篇优质的内容由TA贡献而来

刘遄

《Linux就该这么学》书籍作者,RHCA认证架构师,教育学(计算机专业硕士)。

发表回复