文件通配符使用舉例
* 匹配零個或者多個字符
~]# ls x* 比如搜索以x開頭的文件或者目錄
? 匹配任何單個字符
~]# ls x? 搜索以x打頭的文件或者目錄 單個字符補上
^ 取得反向值
~ 當前用戶家目錄
~]# cd 回到家目錄
~username ~]# cd ~makangbo 回到用戶家目錄
~]# ll ~/ 也可以訪問目錄或文件
~+ 當前工作目錄
/]# cd ~+ 類似於.顯示當前所在工作目錄
/]# ls ~+ /root 也可以訪問目錄或者文件
~- 前一個工作目錄
/]# cd 例如我先cd回到家目錄 然後 ~]# cd ~- 輸入cd ~-回到前一個工作目錄
~]# ll ~-/root 可以進行訪問目錄或者文件
[0-9] 匹配一個數字範圍
~]# ll x[0-9] 訪問查看以x開頭[0-9]以數字結尾的文件或目錄
~]# ll x[1a3] 訪問查看以x開頭[1;a;3;]以尾數作爲結果的文件或者目錄
~]# ll x[^1a3] 取反訪問以x開頭不是[1a3]的文件或者目錄 ‘^’
[a-z] 字母範圍
~]# ll x[a-c] 訪問查看以x開頭[a-c]字母結尾的文件或者目錄
中間包括大寫字母AB等字母;當然範圍寫的到小寫字母c肯定不會到大寫C
[A-Z] 格式“aAbBc” 以小些字母a開頭的中間包括大寫AB到小寫字母c的範圍
*:任意個字符
?: 任意單個字符
[]:指定範圍內任意單個字符
[^]:指定範圍外的單個字符
預定義的字符類:# man 7 glob
[:digit:]任意數字,相當於0-9之間 ~]# ll xiaomag[[:digit:]]
訪問以xiaomag開頭的文件以‘數字範圍’爲結尾的文件
[:lower:]任意小寫字母 ~]# ll xiaomag[[:lower:]] 訪問以xiaomag開頭的文件以‘小寫字母a-z範圍之內’爲結尾的文件
[:upper:]任意大寫字母 ~]# ll xiaomag[[:upper:]] 訪問以xiaomag開頭的文件以‘大寫字母A-Z範圍之內’爲結尾的文件
[:aplha:]任意大小寫字母 ~]# ll xiaomag[[:alpha:]] 訪問以xiaomag開頭的文件以‘大小寫字母aA-zZ範圍之內先小後大’爲結尾的文件
[:alnum:]任意數字或字母 ~]# ll xiaomag[[:alnum:]] 訪問以xiaomag開頭的文件以‘任意數字或大小寫字母’爲結尾的文件
練習
1:顯示/var目錄下所有以m開頭,以一個小寫字母結尾,且中間至少出現一位數字(可以有其它字符)的文件或目錄。
~]# ls -1 /var/m*[[:digit:]]*[[:lower:]]
(按照每行一個文件排列)*:匹配零個或者多個字符;[[:digit:]]任意數字開頭;[[:lower:]]小寫字母
2:顯示/etc目錄下,以任意一個數字開頭,且以非數字結尾的文件或目錄。
~]# ls -l /etc/[[:digit:]]*[^[:digit:]]
(按照長列表顯示) 數字 ^取反符,取反非數字
3:顯示/etc目錄下,以非字母開頭,後面跟了一個字母以及其它任意長度任意字符的文件或目錄。
~]# ls -l /etc/[^[:alpha:]]*[[:alpha:]]
(按照長列表顯示)^取反任意字母的值(意思就是取得非字母開頭)
而後跟一個任意長度;任意字符 ;任意字母;
4:顯示/etc目錄下所有以m開頭以非數字結尾的文件或目錄。
~]# ls -l /etc/m*[^[:digit:]]
(按照長列表顯示)m開頭*匹配零個或者多個字符;^取反數字的值(就是非數字)顯示出來m****
5: 顯示/etc目錄下,所有以.d結尾的文件或目錄
~]# ls -ld /etc/[[:alnum:]]*.d
(ld只顯示列表目錄本身,不顯示內容)任意數字或字母開頭 ;
*匹配零個或者多個字符 以.d爲結尾的所有文件或者目錄
6:顯示/etc目錄下,所有.conf結尾,且以,m,n,r,p開頭的文件或者目錄
~]# ll /etc/[m:r:n:p]*.conf
(打開文件列表)題目要求是以m,n,r,p開頭的文件 就用[m:r:n:p]把需要的字符圍起來加上*(所有)最後以.conf結尾
打下基礎,才能該得起高樓大廈;保持自己良好的習慣,改善壞習慣!
作者:小馬哥(xiaomag)