【Linux】命令行通配符

Linux在文件管理方面提供了丰富的功能,例如通配符,它是一种用于匹配文件名的特殊字符。通配符在Linux中可以帮助我们更加方便和快捷地查找和操作文件。

1.命令行通配符

通配符是一种特殊语句,主要有星号(*)、问号(?)等表示,用来模糊搜索文件,当查找目录或文件时,可以使用通配符来代替一个或多个真正字符。

作用范围:目录和文件名。

常见通配符:常用通配符包括 *、? 、[ ]、 [^ ] 、[! ]和{},具体含义见下表。

字符 含义
*  匹符配任意字符(任意长度和任意字符)
匹配单个的任意字符
[]匹配方括号中的任意一个,不能用于创建目录和文件
[^]匹配方括号中的任意一个字符或数字后进行取反,等同于[!  ],表示范围可以".."或"—”,用于查找和删除目录和文件,不用于创建目录和文件
[!] 匹配方括号中的任意一个字符或数字后进行取反,  等同于[^ ],表示范围可以".."或"—", 用于查找和删除目录和文件,不用于创建目录和文件
[?-?] 匹配方括号范围内任意一个,用于查询、删除,但不能用于创建目录和文件
{string,string}匹配括号中的任意一个字符串,表示一个范围时,字符串之间个".."

相信看了这个表,你还是有一点懵,没事,我们下面接着讲 

1.1.*

星号(*)通常用于匹配任何字符,包括数字、字母和符号。你可以使用星号指定应用程序需要查找的字符相应位置的任何字符。

例如,如果要显示目录中所有的.c后缀的文件,则可以使用以下命令:

我们还可以将*放到中间去


    
  如果你想放到前面也是可以的,

我们还可以借助*来删除文件


   

*可以匹配任意长度的任意字符!!怎么样,强大吧!

此外*可以匹配空字符!!!

1.2.?

这个就没有上面的*强大了,上面的是匹配任意长度的任意字符,但是这个?就是只能匹配1个任意字符(不包括空字符)

问号(?)通配符匹配文件名中单个字符。在文件名中,问号占用了字符位置,能够匹配任何字符。

我们来使用一下

我们还可以用它来删除文件 

?字符代表单个字符。如果匹配多个字符,就需要多个?连用。

注意,?不能匹配空字符。也就是说,它占据的位置必须有字符存在。

1.3.[]

中括号([])通配符:用于指定一个字符范围,匹配其中的任意一个字符。

我给大家看几个例子

  1. [abcd] 匹配abcd中任何一个字符,abcd也可以是其他任意不连续字符
  2. [a-z] 匹配a到z之间的任意一个字符,字符前后要连续,也可以使用连续数字[1-9]

例如,使用命令ll [abc]来列出文件名是a,b,c的文件,ll [a-c]也是一样的

我们也可以用它来删除 

 方括号([])通配符用于匹配指定字符集范围中的一个字符。如果需要匹配一小段字符集范围,可以使用该通配符。

还可以使用逗号来列举多个字符范围,例如[0-9a-f]表示数字0-9和小写字母a-f。

我们可以使用这个来删除

 1.4.{}

花括号({})通配符提供一种在Linux中生成文件名的方法。若文件名中有几个不同的选项,就可以使用此通配符。它会自动将多个选项组合成唯一的字符串。

这个就比较有意思了

1.5.[^...]和[!...]

[^...]和[!...]表示匹配不在方括号里面的字符(不包括空字符)。这两种写法是等价的。

 

此外,下面这两种写法是一样的

1.6.{...}模式

表示匹配大括号里面的所有模式,模式之间使用逗号分隔。 

注意不能使用-来标识连续字符,得用...来标识

1.7.注意点

通配符只适用于单层路径。

上面所有通配符只匹配单层路径,不能跨目录匹配,即无法匹配子目录里面的文件。或者说,?*这样的通配符,不能匹配路径分隔符(/

如果要匹配子目录里面的文件,可以写成下面这样。

### 回答1: Linux通配符是一种用于匹配文件名的特殊字符,常用的通配符包括: *:匹配任意字符,可以代表任意长度的字符串。 ?:匹配单个字符,可以代表任意一个字符。 []:匹配指定范围内的字符,可以用“-”表示范围。 {}:匹配多个字符串中的一个,可以用“,”分隔多个字符串。 通配符可以用于命令行中的文件名匹配、正则表达式中的模式匹配等场合,可以大大提高文件操作的效率。 ### 回答2: 在Linux通配符是一种特殊字符,用于匹配文件名或路径名中的一部分或全部字符,用于查找、筛选、删除、移动、重命名等操作。 常见的通配符有以下几种: 1. 星号(*):匹配任意长度的字符,可以出现在文件或目录名称的任意位置。例如,使用 ls 命令时,可以使用 "*.txt" 来列出所有以.txt结尾的文件。 2. 问号(?):匹配任意单个字符。例如,使用 ls 命令时,可以使用 "file?.txt" 来列出所有以file开头,后面跟着一个任意字符,最后是.txt的文件。 3. 方括号([ ]):用于匹配指定范围内的字符。可以指定多个字符范围,使用连字符表示。例如,使用 ls 命令时,可以使用 "[abc]file.txt" 来列出以 a、b 或 c 开头,后面是file,最后是.txt的文件。 4. 脱字符(^):用于取反,匹配不在指定范围内的字符。例如,使用 ls 命令时,可以使用 "[^0-9]file.txt" 来列出不以数字开头,后面是file,最后是.txt的文件。 5. 大括号({ }):用于匹配多个模式。可以使用逗号分隔多个模式。例如,使用 ls 命令时,可以使用 "{*.jpg, *.jpeg}" 来列出所有以.jpg或.jpeg结尾的文件。 通过使用这些通配符,可以方便地进行文件的管理和操作。 ### 回答3: 在Linux中,通配符是用来匹配文件名的特殊字符。通配符可以帮助我们更方便地定位和操作文件。 常用的通配符有:星号(*)、问号(?)、方括号([])和花括号({})。 星号(*)通配符可以匹配任意字符的长度,它可以出现在文件名的任意位置。例如,查找所有以"txt"结尾的文件,我们可以使用命令"ls *.txt"。 问号(?)通配符可以匹配一个任意字符,通常用于匹配单个字符。例如,查找所有以"hello"开头的文件,后面紧跟一个字符的文件,我们可以使用命令"ls hello?"。 方括号([])通配符可以用于匹配特定范围内的字符。例如,查找以字母"a"、"b"或"c"开头的文件,我们可以使用命令"ls [abc]*"。 花括号({})通配符可以用于匹配多个字符串的组合。例如,查找以"file"开头的文件,后面紧跟着"1"或者"2"的文件,我们可以使用命令"ls file{1,2}"。 除了以上常用的通配符,还有一些其他的通配符可供使用,如"!"、"-"等等。这些通配符可以帮助我们更精确地定位和操作文件。 总的来说,通过灵活运用通配符,我们可以更有效地查找和操作文件,提高我们的工作效率。无论是在命令行还是脚本中,通配符的使用都非常有用并且十分方便。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值