Linux中的通配符(wildcards)可以用于在命令行中方便地匹配文件名
*
:匹配任意長度的任意字符。例如,*.txt
表示所有以 .txt
結尾的文件。
?
:匹配任意單個字符。例如,ab?d
表示以 a
開頭,b
后面跟一個任意字符,然后是 d
的文件。
[abc]
:匹配方括號內的任意一個字符。例如,[aeiou]
表示以 a
、e
、i
、o
或 u
開頭的文件。
[!abc]
:匹配不在方括號內的任意一個字符。例如,[!aeiou]
表示以 b
、c
、d
、e
或 f
開頭的文件。
{m,n}
:匹配大括號內的任意一個字符串。例如,{a,b,c}
表示 a
、b
或 c
。
{m,n,p}
:匹配大括號內的任意多個字符串。例如,{a,b,c}{1,2}
表示 aa
、ab
、ac
、ba
、bb
或 bc
。
* *
:匹配任意數量的任意字符。例如,a* *
表示以 a
開頭,后面跟任意數量的任意字符,再后面跟任意數量的任意字符的文件。
? *
:匹配一個任意字符,后面跟任意數量的任意字符。例如,? *
表示以任意字符開頭,后面跟任意數量的任意字符的文件。
* ?
:匹配任意數量的任意字符,后面跟一個任意字符。例如,* ?
表示以任意數量的任意字符開頭,后面跟一個任意字符的文件。
以下是一些使用通配符的示例:
.txt
文件:ls *.txt
a
或 b
開頭的文件:ls [ab]*
a
、e
、i
或 o
開頭的文件:ls [aeiou]*
ls [0-9]*
file
開頭,后面跟一個或多個數字的文件:ls file[0-9]*
file
開頭,后面跟一個或多個數字和一個擴展名為 .txt
的文件:ls file[0-9]*.txt
通過組合這些通配符,你可以更靈活地匹配文件名。