linux通配符

citic 2020-05-03

主要用于匹配文件和目录  如果是内容需要用更复杂得正则

* 匹配 0个或者多个任意字符

? 匹配一个字符

[-] 匹配括号中任意一个字符 -代表范围 如a-z  A-Z 0-9 

[^] 匹配不是括号中的一个字符  如 [^a-9] 匹配不是0-9的字符

[ ~]# ls
anaconda-ks.cfg  lnmp1.6.tar.gz  lnmp-install.log  post_install.log  test
[ ~]# cd test
[ test]# touch dya dyb dyc dyabc dy1 dy2 dy3 dy55 dydd
[ test]# ls
dy1  dy2  dy3  dy55  dya  dyabc  dyb  dyc  dydd
[ test]# ls dy*
dy1  dy2  dy3  dy55  dya  dyabc  dyb  dyc  dydd
[ test]# ls dy[a-z]
dya  dyb  dyc
[ test]# ls[^a-z]
bash: ls[^a-z]: 未找到命令
[ test]# ls [^a-z]
ls: 无法访问[^a-z]: 没有那个文件或目录
[ test]# ls dy[^a-z]
dy1  dy2  dy3
[ test]# ls dy?
dy1  dy2  dy3  dya  dyb  dyc
[ test]# ls dy[a-z]*
dya  dyabc  dyb  dyc  dydd
[ test]# ls dy[a-z][a-z]
dydd
[ test]#

单引号所有特殊符号丧失含义

双引号 $符号会解析

反引号会执行命令  可以用$()替换

\ 转义特殊符号

[ test]# echo $name
test
[ test]# echo ‘$name‘
$name
[ test]# echo "$name"
test
[ test]# a=`ls`
[ test]# echo $a
dy1 dy2 dy3 dy55 dya dyabc dyb dyc dydd
[ test]#

[ test]# b=$(ls)
[ test]# echo $b
dy1 dy2 dy3 dy55 dya dyabc dyb dyc dydd
[ test]# 

[ test]# echo $b
dy1 dy2 dy3 dy55 dya dyabc dyb dyc dydd
[ test]# echo \$b
$b

相关推荐