熟练使用Linux通配符,效率加倍!

267 阅读1分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。


通配符和正则表达式有相似之处也有不同之处,到底区别在于何处?

在Linux中,用作于匹配文件名,用shell进行解析,比如find命令,ls命令,cd命令等。而正则表达式主要是用于文件内容的匹配,比如文本三剑客命令grep、sed、awk就需要频繁使用正则表达式。

常用的通配符

  • *: 匹配任意多个字符
  • image.png
  • /?:可以匹配任意单个字符
  • image.png
  • [list]:匹配的是列表中任意单个字符
  • image.png
  • [c1-c2]:匹配的是c1-c2中任意单个字符
  • image.png
  • [c1-c2]或者[!c1-c2]:不匹配范围中任意单个字符
  • image.png
  • {string1, string2, string3.......}:匹配{}中任意单个字符串
  • image.png

shell的元字符

  • 重定向:>或者<
  • 管道符:|
  • 赋值语句:=
  • 获取变量值:$变量名
  • 转义符:\
  • 注释符:#
  • 后台执行命令:&
  • 在子shell中执行命令或运算:()或者一对反引号
  • 函数中执行变量替换的定界范围:{}
  • 命令结束后,忽略其返回结果,继续执行下一个命令:分号
  • 同时执行多条命令:&&,前一条命令执行结果为True
  • 同时执行多条命令:||,前一条命令执行结果为false
  • 非:!

转义符

  • 硬转义:一对单引号,关闭比所有元字符
  • 软转义:一对双引号
  • image.png