【Linux】命令行通配符
Linux在文件管理方面提供了丰富的功能,例如通配符,它是一种用于匹配文件名的特殊字符。通配符在Linux中可以帮助我们更加方便和快捷地查找和操作文件。1.命令行通配符
通配符是一种特殊语句,主要有星号(*)、问号(?)等表示,用来含糊搜索文件,当查找目次或文件时,可以利用通配符来代替一个或多个真正字符。
作用范围:目次和文件名。
常见通配符:常用通配符包罗 *、? 、[ ]、 [^ ] 、[! ]和{},具体含义见下表。
字符 含义* 匹符配恣意字符(恣意长度和恣意字符)?匹配单个的恣意字符[]匹配方括号中的恣意一个,不能用于创建目次和文件[^]匹配方括号中的恣意一个字符或数字后进行取反,等同于[! ],表示范围可以".."或"—”,用于查找和删除目次和文件,不消于创建目次和文件[!] 匹配方括号中的恣意一个字符或数字后进行取反, 等同于[^ ],表示范围可以".."或"—", 用于查找和删除目次和文件,不消于创建目次和文件[?-?] 匹配方括号范围内恣意一个,用于查询、删除,但不能用于创建目次和文件{string,string}匹配括号中的恣意一个字符串,表示一个范围时,字符串之间个".." 信任看了这个表,你还是有一点懵,没事,我们下面接着讲
1.1.*
星号(*)通常用于匹配任何字符,包罗数字、字母和符号。你可以利用星号指定应用程序需要查找的字符相应位置的任何字符。
例如,假如要表现目次中所有的.c后缀的文件,则可以利用以下命令:
https://i-blog.csdnimg.cn/direct/0df7ea4abc594a7fb0a7bdc63288f6e8.png
我们还可以将*放到中间去
https://i-blog.csdnimg.cn/direct/6fd58d89af4940628ff82ee6252616e0.png
假如你想放到前面也是可以的,
我们还可以借助*来删除文件
https://i-blog.csdnimg.cn/direct/e7f4d0a1c1ab46e492a456ed78d4f21d.png
*可以匹配恣意长度的恣意字符!!怎么样,强盛吧!
别的*可以匹配空字符!!!
https://i-blog.csdnimg.cn/direct/71c6829bdd044f3cb50a22a08ffe1557.png
1.2.?
这个就没有上面的*强盛了,上面的是匹配恣意长度的恣意字符,但是这个?就是只能匹配1个恣意字符(不包罗空字符)
问号(?)通配符匹配文件名中单个字符。在文件名中,问号占用了字符位置,能够匹配任何字符。
我们来利用一下
https://i-blog.csdnimg.cn/direct/887c0bfdf52749c39a67fb889937922a.png
我们还可以用它来删除文件
https://i-blog.csdnimg.cn/direct/f7b9a25c46f245b792df2f361d8b06fb.png
?字符代表单个字符。假如匹配多个字符,就需要多个?连用。
https://i-blog.csdnimg.cn/direct/0d780ddbadc147cea8f01bc70d95921e.png
https://i-blog.csdnimg.cn/direct/1c8a75b9e98c44fd97e22b2fc8758d65.png
注意,?不能匹配空字符。也就是说,它占据的位置必须有字符存在。
https://i-blog.csdnimg.cn/direct/746535298984474bab4078b42b94e28c.png
1.3.[]
中括号([])通配符:用于指定一个字符范围,匹配其中的恣意一个字符。
我给大家看几个例子
[*] 匹配abcd中任何一个字符,abcd也可以是其他恣意不连续字符
[*] 匹配a到z之间的恣意一个字符,字符前后要连续,也可以利用连续数字
例如,利用命令ll 来列出文件名是a,b,c的文件,ll 也是一样的
https://i-blog.csdnimg.cn/direct/e837ec2b707b4969beb9d3e75f34b2d7.png
我们也可以用它来删除
https://i-blog.csdnimg.cn/direct/81b7d92ce1164eff86f7da8106b7e429.png
方括号([])通配符用于匹配指定字符集范围中的一个字符。假如需要匹配一小段字符集范围,可以利用该通配符。
https://i-blog.csdnimg.cn/direct/5c53ee2d4c964775a9c88b95331b1670.png
还可以利用逗号来枚举多个字符范围,例如表示数字0-9和小写字母a-f。
https://i-blog.csdnimg.cn/direct/181c1ea58189418282bc07287c5c318f.png
我们可以利用这个来删除
https://i-blog.csdnimg.cn/direct/78ed7aacc8dd45939a9df779714f079a.png
1.4.{}
花括号({})通配符提供一种在Linux中天生文件名的方法。若文件名中有几个差别的选项,就可以利用此通配符。它会自动将多个选项组合成唯一的字符串。
https://i-blog.csdnimg.cn/direct/2004f6919865497a8d45ee9120517811.png
这个就比较故意思了
1.5.[^...]和[!...]
[^...]和[!...]表示匹配不在方括号里面的字符(不包罗空字符)。这两种写法是等价的。
https://i-blog.csdnimg.cn/direct/91400e5413994c0999b71a07a35c56d4.png
别的,下面这两种写法是一样的
https://i-blog.csdnimg.cn/direct/223d8fdea7a94196a9793951a3182e7d.png
1.6.{...}模式
表示匹配大括号里面的所有模式,模式之间利用逗号分隔。
https://i-blog.csdnimg.cn/direct/6c77a43003ae4a82bdc01fba50385b3a.png
注意不能利用-来标识连续字符,得用...来标识
1.7.注意点
通配符只实用于单层路径。
上面所有通配符只匹配单层路径,不能跨目次匹配,即无法匹配子目次里面的文件。大概说,?或*如许的通配符,不能匹配路径分隔符(/)。
https://i-blog.csdnimg.cn/direct/02590c5cc380475b8a1ea9431fae4e51.png
假如要匹配子目次里面的文件,可以写成下面如许。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]