通配符是一種特殊語句,用來模糊搜索文件。當查找文件夾時,可以使用它來代替一個或多個真正字符它使得文件管理更加快速,便捷,大大提升了工作效率。
常用的通配符有 ?* 、? 、[] ?等(可通過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運維部落立場,如若轉載,請注明出處:http://www.www58058.com/94412