杭州校区切换校区
图标

学习文章

当前位置:首页 > >学习文章 > >

{红帽 RHCE}通配符的使用

发布时间: 2018-08-23 13:30:00

​通配符:想查找某一类的字符,满足某种类型的文件

这些不是具体的值,要怎么使用计算机去表示?   需要借助通配符去匹配,模糊的匹配

创建几个文件

[root@togogo xx]# touch 1a_x  1-1x_2  a2_y

查看文件是否被创建成功

[root@togogo xx]# ls

想查找文件名第一位是数字,第二位是字母的文件

[root@togogo xx]# ls  [0-9][a-z]*

想查找文件名第一位是数字,第二位是a或‘-’或2的文件

[root@togogo xx]# ls  [0-9][a\-2]*

再创建一个文件

[root@togogo xx]# touch Axx

[root@togogo xx]# ls

1-1x_2  1a_x  a2_y  Axx

查询开头是字母的文件

[root@togogo xx]# ls  [a-z]*

a2_y  Axx

通配符是[a-z]  虽然是小写的,但是也包含了大写字母

[root@togogo xx]# ls [A-Z]*

Axx

通配符是[A-Z]*,只查找大写开头的文件



[root@togogo xx]# ls

1-1x_2  1a_x  a2_y  Axx

想查找以数字开头的文件

[root@togogo xx]# ls [[:digit:]]*

想查找以大写字母开头的文件

[root@togogo xx]# ls [[:upper:]]*

想查找数字或字母开头的文件

[root@togogo xx]# ls [[:alnum:]]*


----------------

查找一下 vsftp的安装包的位置,可以查询到文件

[root@togogo xx]# yum list vsftp*

现在创建文件 vsftpxxx

[root@togogo xx]# touch vsftpxxx

再查找vsftp的安装包,发现查找不到

[root@togogo xx]# yum list vsftp*

为什么?

因为“*”是通配符,yum是在shell上执行的,也就是说yum是shell的子进程

先在shell就对“*”进行解析,解析成vsftpxxx,然后在yum查询的时候使用vsftpxxx


需要在shell中排除“*”号的意义,使用“\”进行转义,在yum中查找以vsftp开头的文件

[root@togogo xx]# yum list vsftp\*

也可以使用单引号 ‘vsftp*‘,因为shell不会识别单引号里面的特殊字符的

[root@togogo xx]# yum  list  'vsftp*'

删除vsftpxx文件

[root@togogo xx]# rm -rf vsftpxxx

再使用vsftp*  能查找到,因为在shell中不会进行解析,直接去yum中解析

[root@togogo xx]# yum list vsftp*


像  *  ?  等符号是不能匹配 点的,就是不能匹配隐藏文件

创建一个隐藏文件

[root@togogo xx]# touch .xxxx

[root@togogo xx]# rm -rf *

[root@togogo xx]# ls -a

.  ..  .xxxx

发现带点的文件还在,不会进行匹配

上一篇: {华为 HCIE-R&S}NTP时钟

下一篇: {华为 HCIE-R&S} 配置本机防攻击

在线咨询 ×

您好,请问有什么可以帮您?我们将竭诚提供最优质服务!