溫馨提示×

Linux通配符怎樣匹配多個文件

小樊
81
2024-10-09 03:37:24
欄目: 智能運維

在Linux中,通配符(wildcard)用于匹配文件名或路徑。要使用通配符匹配多個文件,可以在命令行中使用ls、find等命令。以下是一些常見的通配符及其用法:

  1. *:匹配任意長度的任意字符。例如,*.txt將匹配所有擴展名為.txt的文件。

  2. ?:匹配任意單個字符。例如,file?.txt將匹配file1.txt、file2.txt等,但不會匹配file0.txt

  3. [...]:匹配方括號內(nèi)的任意一個字符。例如,[ab].txt將匹配a.txtb.txt,但不會匹配c.txt。如果方括號內(nèi)包含多個字符,如[a-z].txt,則只匹配小寫字母開頭的文件名。

  4. {...}:匹配大括號內(nèi)的任意一個字符串。例如,{file1,file2}.txt將匹配file1.txtfile2.txt

  5. *? 可以組合使用。例如,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" \)

0