linux通配符

通配符

在linux中,shell在匹配文件的时候会去解析通用模式匹配符号,shell会将匹配到的真实文件路径替换到参数输入处。需要注意的是通配符的语法和正则表达式有很大的不同。

通配符 含义 备注
* 匹配任意个字符
? 匹配任意单个字符
[set] 匹配set中的任意单一字符 可以使用连字符-表示范围,比如[0-9]
[!set] or [^set] 匹配除了set中的任意单一字符 可以使用连字符-表示范围,比如[!0-9]
?(PATTERN-LIST) 匹配字符串模式0次或1次 扩展通配符,需开启extglob
*(PATTERN-LIST) 匹配字符串模式任意次 扩展通配符,需开启extglob
+(PATTERN-LIST) 匹配字符串模式1次或多次 扩展通配符,需开启extglob
@(PATTERN-LIST) 匹配字符串模式1次 扩展通配符,需开启extglob
!(PATTERN-LIST) 匹配除PATTERN-LIST字符串模式 扩展通配符,需开启extglob

花括号展开

也被称为大括号扩展,是可以让bash生成组合字符串的一种扩展功能。shell会将生成的所有组合结果替换到参数输入处。

格式 含义
{string1,string2,...,stringN} 可以展开为指定字符串模式
{<START>..<END>[..<INCR>]} 可以自动生成指定的字符串模式,可以设置起始值,终止值,和每次增量值

示例

touch一次创建多个文件。

[rc@localhost work]$ touch text{01..10}
[rc@localhost work]$ ll
总用量 0
-rw-rw-r--. 1 rc rc 0 9月  20 14:15 text01
-rw-rw-r--. 1 rc rc 0 9月  20 14:15 text02
-rw-rw-r--. 1 rc rc 0 9月  20 14:15 text03
-rw-rw-r--. 1 rc rc 0 9月  20 14:15 text04
-rw-rw-r--. 1 rc rc 0 9月  20 14:15 text05
-rw-rw-r--. 1 rc rc 0 9月  20 14:15 text06
-rw-rw-r--. 1 rc rc 0 9月  20 14:15 text07
-rw-rw-r--. 1 rc rc 0 9月  20 14:15 text08
-rw-rw-r--. 1 rc rc 0 9月  20 14:15 text09
-rw-rw-r--. 1 rc rc 0 9月  20 14:15 text10

ls查看多种结尾模式的文件。

方法一。

[rc@localhost work]$ ll text@(01|10|11)
-rw-rw-r--. 1 rc rc 0 9月  20 14:15 text01
-rw-rw-r--. 1 rc rc 0 9月  20 14:15 text10

方法二。

[rc@localhost work]$ ll text{01,10,11}
ls: 无法访问text11: 没有那个文件或目录
-rw-rw-r--. 1 rc rc 0 9月  20 14:15 text01
-rw-rw-r--. 1 rc rc 0 9月  20 14:15 text10

find查找指定模式的文件。

[rc@localhost work]$ find . -name "text0[4-5]"
./text04
./text05

但是find不支持extglob,所以没法查询多种字符串模式,需要手动加-or参数写多个条件。

[rc@localhost work]$ touch text.{log,txt}
[rc@localhost work]$ ll
总用量 0
-rw-rw-r--. 1 rc rc 0 9月  20 14:20 text.log
-rw-rw-r--. 1 rc rc 0 9月  20 14:20 text.txt
[rc@localhost work]$ find . -name "text.@(log|txt)"
[rc@localhost work]$ find . -name "text.log" -or -name "text.txt"
./text.log
./text.txt

参考资料

posted @   HachikoT  阅读(529)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示