因為 shell 頻繁 地使用文件名,shell 提供了特殊字符來幫助你快速指定一組文件名。這些特殊字符叫做通配符。
通配符 意義
* 匹配任意多個字符(包括零個或一個)
? 匹配任意一個字符(不包括零個)
[characters] 匹配任意一個屬於字符集中的字符
[!characters] 匹配任意一個不是字符集中的字符
[[:class:]] 匹配任意一個屬於指定字符類中的字符
字符類 意義
[:alnum:] 匹配任意一個字母或數字
[:alpha:] 匹配任意一個字母
[:digit:] 匹配任意一個數字
[:lower:] 匹配任意一個小寫字母
[:upper] 匹配任意一個大寫字母
一些常用的匹配:
模式 匹配對象
* 所有文件
g* 文件名以“g”開頭的文件
b*.txt 以”b” 開頭,中間有零個或任意多個字符,並以”.txt” 結尾的文件
Data??? 以“Data”開頭,其后緊接着 3 個字符的文件
[abc]* 文件名以”a”,”b”, 或”c” 開頭的文件
BACKUP.[0-9][0-9][0-9] 以”BACKUP.” 開頭,並緊接着 3 個數字的文件
[[:upper:]]* 以大寫字母開頭的文件
[![:digit:]]* 不以數字開頭的文件
*[[:lower:]123] 文件名以小寫字母結尾,或以“1”,“2”,或“3”結尾的文件