發(fā)布時(shí)間: 2018-08-23 13:30:00
?通配符:想查找某一類的字符,滿足某種類型的文件
這些不是具體的值,要怎么使用計(jì)算機(jī)去表示? 需要借助通配符去匹配,模糊的匹配
創(chuàng)建幾個(gè)文件
[root@togogo xx]# touch 1a_x 1-1x_2 a2_y
查看文件是否被創(chuàng)建成功
[root@togogo xx]# ls
想查找文件名第一位是數(shù)字,第二位是字母的文件
[root@togogo xx]# ls [0-9][a-z]*
想查找文件名第一位是數(shù)字,第二位是a或‘-’或2的文件
[root@togogo xx]# ls [0-9][a\-2]*
再創(chuàng)建一個(gè)文件
[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
想查找以數(shù)字開頭的文件
[root@togogo xx]# ls [[:digit:]]*
想查找以大寫字母開頭的文件
[root@togogo xx]# ls [[:upper:]]*
想查找數(shù)字或字母開頭的文件
[root@togogo xx]# ls [[:alnum:]]*
----------------
查找一下 vsftp的安裝包的位置,可以查詢到文件
[root@togogo xx]# yum list vsftp*
現(xiàn)在創(chuàng)建文件 vsftpxxx
[root@togogo xx]# touch vsftpxxx
再查找vsftp的安裝包,發(fā)現(xiàn)查找不到
[root@togogo xx]# yum list vsftp*
為什么?
因?yàn)椤?”是通配符,yum是在shell上執(zhí)行的,也就是說(shuō)yum是shell的子進(jìn)程
先在shell就對(duì)“*”進(jìn)行解析,解析成vsftpxxx,然后在yum查詢的時(shí)候使用vsftpxxx
需要在shell中排除“*”號(hào)的意義,使用“\”進(jìn)行轉(zhuǎn)義,在yum中查找以vsftp開頭的文件
[root@togogo xx]# yum list vsftp\*
也可以使用單引號(hào) ‘vsftp*‘,因?yàn)閟hell不會(huì)識(shí)別單引號(hào)里面的特殊字符的
[root@togogo xx]# yum list 'vsftp*'
刪除vsftpxx文件
[root@togogo xx]# rm -rf vsftpxxx
再使用vsftp* 能查找到,因?yàn)樵趕hell中不會(huì)進(jìn)行解析,直接去yum中解析
[root@togogo xx]# yum list vsftp*
像 * ? 等符號(hào)是不能匹配 點(diǎn)的,就是不能匹配隱藏文件
創(chuàng)建一個(gè)隱藏文件
[root@togogo xx]# touch .xxxx
[root@togogo xx]# rm -rf *
[root@togogo xx]# ls -a
. .. .xxxx
發(fā)現(xiàn)帶點(diǎn)的文件還在,不會(huì)進(jìn)行匹配