在Linux中,通配符(wildcards)可以用于處理文件路徑。它們允許你使用特殊字符來匹配多個文件或目錄。以下是一些常用的通配符及其用法:
*
:匹配任意數量的任意字符。例如,*.txt
匹配所有以 .txt
結尾的文件。
?
:匹配任意單個字符。例如,ab?d
匹配 abd
、abbd
和 abtd
等。
[...]
:匹配方括號內的任意單個字符。例如,[ab]d
匹配 ad
和 bd
。[!ab]d
匹配除了 ad
和 bd
之外的所有以 d
結尾的文件。
{...}
:匹配大括號內的任意一個字符串。例如,file{1,2}.txt
匹配 file1.txt
和 file2.txt
。
*
和 ?
可以組合使用。例如,a?b.txt
匹配 axb.txt
和 a1b.txt
。
在處理文件路徑時,可以使用這些通配符來搜索、復制、移動或刪除多個文件。以下是一些常用的命令示例:
ls *.txt
:列出所有以 .txt
結尾的文件。cp file*.txt backup/
:將所有以 file
開頭,以 .txt
結尾的文件復制到 backup
目錄。mv *.bak old/
:將所有以 .bak
結尾的文件移動到 old
目錄。rm -f [0-9]*.log
:刪除所有以數字開頭,以 .log
結尾的文件。注意:在使用通配符時,需要注意文件名的大小寫敏感性。例如,*.txt
只會匹配小寫的 .txt
文件,而不會匹配大寫的 .TXT
文件。如果需要不區分大小寫,可以使用 find
命令并結合 -iname
選項。例如,find . -iname "*.txt"
會匹配所有以 .txt
結尾的文件,無論大小寫。