帶你認識Linux中的通配符
常用的通配符有 * 、? 、[] 等(可通過man 7 glob的幫助文檔來查看所有通配符)
1,* 代表任意長度的任意字符:
示例:ls -d /etc/a* 顯示/etc目錄下所有以a開頭的文件與目錄:
2,? 表示任意單個字符:
示例: ls a?b 顯示當前目錄下所有以a開頭中間有一個字符b結尾的文件,a10b中間夾2個字符,因此不顯示:
3, [] 匹配指定範圍內任意單個字符:
示例:ls -d /etc/[mn]* 顯示/etc目錄下所有以m開頭或者n開頭的文件和目錄:
[a-Z] 表示任意一個單個字母:
示例:ls -d* [a-Z] 顯示目錄下所有以字母開頭的文件或目錄
[0-9] 表示任意單個數字:
示例:ls -d f[0-9] 顯示當前目錄下所有以f開頭後跟任意一個數字的文件和目錄,f16因含兩個數字,則不予顯示:
4,[^] 匹配除指定範圍以外的任意單個字符:
示例:ls -d [^a]* 顯示當前目錄下所有不是a開頭的文件和目錄:
註意:對字符集或數字集取反時,托字符^加在括號內;如:[^0-9],[^[:alpha:]];
5,常用的字符集的表示方法:
[:alpha:]表示所有的字母(不區分大小寫)
例:ls -d *[[:alpha:]] 顯示當前目錄下所有以字母結尾(不區分大小寫)的文件和目錄
[:digit:]表示任意單個數字,效果同[0-9]
例:ls f[[:digit:]] 顯示當前目錄下所有f開頭,單個數字結尾的文件,值得註意的是:[:digit:]只代表單個數字,f16文件因為f後跟兩個數字,則不予顯示。
[:lower:]表示任意單個小寫字母
例:ls -d [[:lower:]]*[[:lower:]]
顯示所有當前目錄下以小字字母開頭且以小寫字母結尾的文件和目錄:
[:upper:]表示任意單個大寫字母
例:ls -d a*[[:upper:]] 顯示當前目錄下 所有以a開頭並以一個大寫字母結尾的文件和目錄:
[:alnum:]表示任意單個字母或數字
例:ls -d [[:alnum:]]顯示當前目錄下 所有以字母或數字結尾的文件和目錄:
到此為止,常用的通配符使用方法就介紹到這裏了。
帶你認識Linux中的通配符