在Linux中,通配符(wildcard)用于匹配文件名或路徑。要使用通配符匹配多個文件,可以在命令行中使用ls
、find
等命令。以下是一些常見的通配符及其用法:
*
:匹配任意長度的任意字符。例如,*.txt
將匹配所有擴展名為.txt
的文件。
?
:匹配任意單個字符。例如,file?.txt
將匹配file1.txt
、file2.txt
等,但不會匹配file0.txt
。
[...]
:匹配方括號內(nèi)的任意一個字符。例如,[ab].txt
將匹配a.txt
和b.txt
,但不會匹配c.txt
。如果方括號內(nèi)包含多個字符,如[a-z].txt
,則只匹配小寫字母開頭的文件名。
{...}
:匹配大括號內(nèi)的任意一個字符串。例如,{file1,file2}.txt
將匹配file1.txt
和file2.txt
。
*
和 ?
可以組合使用。例如,file*.txt
將匹配file1.txt
、file2.txt
等,file?.txt
將匹配file1.txt
、file2.txt
等。
以下是一些示例:
.txt
文件:ls *.txt
/home/user
目錄下查找所有以.log
結尾的文件:find /home/user -type f -name "*.log"
file
開頭,緊接著一個任意字符,然后是.txt
的文件:find . -type f -name "file?.txt"
.txt
或.md
的文件:find . -type f \( -name "*.txt" -o -name "*.md" \)