globbing:文件名通配c++
元字符:git
*:匹配任意長度的任意字符shell
?:匹配任意單個字符微信
[]:匹配指定範圍內的任意單個字符學習
[a-z]或者[A-Z]或者[[:alpha:]]:匹配任意一個字母spa
[[:upper:]]:匹配任意一個大寫字母code
[[:lower:]]:匹配任意一個大寫字母it
[0-9]或者[[:digit:]]:匹配任意一個數字class
[a-z0-9]或者[[:alnum:]]:匹配任意一個字母和數字im
[[:space:]]:匹配一個空格
[[:punct:]]:匹配任意一個表達符號
$ touch "p,;a" $ ls p[[:punct:]][[:punct:]]a p,;a
[^]:匹配指定範圍外的任意單個字符
若是想touch一個文件名裏有空格的文件,怎麼辦?
使用。下面例子建立的文件名【a d】,a和d中間有2個空格。
或者使用「」,把文件名括起來。
$ touch a\ \ d $ touch "a d"
練習1:顯示/var目錄下,全部以l開頭,以一個小寫字母結尾,且中間出現1位任意字符的文件或目錄
# ls -ld /var/[l]?[[:lower:]] drwxr-xr-x. 66 root root 4096 Dec 9 14:20 /var/lib drwxr-xr-x. 21 root root 4096 Dec 15 18:26 /var/log
練習2:顯示/etc目錄下,以任意一位數字開頭,且以非數字結尾的文件或目錄。
# ls -d /etc/[[:digit:]]*[^0-9] /etc/4afdsf@
練習3:顯示/etc目錄下,以非字母開頭,後面跟一個字母及其餘任意長度任意字符的文件或目錄
# ls -d /etc/[^[:alpha:]][[:alpha:]]* /etc/4afdsf
練習4:複製/etc目錄下,全部以m開頭,以非數字結尾的文件或目錄,到/tmp/tp1目錄。
# cp -r /etc/m*[^0-9] /tmp/tp1
練習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