1. 程式人生 > >bash的基礎特性之三:檔名通配機制(globbing)

bash的基礎特性之三:檔名通配機制(globbing)

匹配模式:元字元

1.  *:匹配任意長度的任意字元

2.   ?:匹配任意單個字元

3.   [ ]:匹配指定範圍內的任意單個字元
             有幾種特殊格式:
                    [a-z], [A-Z], [0-9], [a-z0-9]
                    [[:upper:]]:所有大寫字母
                    [[:lower:]]:所有小寫字母
                    [[:alpha:]]:所有字母
                    [[:digit:]]:所有數字
                    [[:alnum:]]:所有的字母和數字
                    [[:space:]]:所有空白字元
                    [[:punct:]]:所有標點符號

4.   [^]:匹配指定範圍外的任意單個字元
                [^[:upper:]]
                [^0-9]
                [^[:alnum:]]

 

例項1:
           顯示/var目錄下所有以l開頭,以一個小寫字母結尾,且中間出現一位任意字元的檔案或目錄;
            ls -d /var/l?[[:lower:]]

例項2:
           顯示/etc目錄下,以任意一位數字開頭,且以非數字結尾的檔案或目錄;
           ls -d /etc/[0-9]*[^0-9]

例項3:
           顯示/etc目錄下,以非字母開頭,後面跟一個字母及其它任意長度任意字元的檔案或目錄;
           ls -d /etc/[^ [:alpha:]][a-z]*

例項4:
           複製/etc目錄下,所有以m開頭,以非數字結尾的檔案或目錄至/tmp/com目錄;
           cp -r /etc/m*[^0-9] /tmp/com/

 例項5:
           複製/usr/share/man目錄下,所有以man開頭,後跟一個數字結尾的檔案或目錄至/tmp/man/目錄下;
           cp -r /usr/share/man/man[0-9] /tmp/man/

例項6:
            複製/etc目錄下,所有以.conf結尾,且以m,n,r,p開頭的檔案或目錄至/tmp/conf.d/目錄下;
            cp -r /etc/[mnrp]*.conf /tmp/conf.d/