在Linux中,我們可以使用通配符(wildcards)來進行文件查找。通配符可以幫助我們快速搜索文件名或路徑中與特定模式匹配的文件。以下是一些常用的通配符及其用法:
*
:匹配任意長度的任意字符。例如,*.txt
可以匹配所有以 .txt
結尾的文件。
?
:匹配單個字符。例如,ab?d
可以匹配 abcd
、abtd
和 abt1d
等。
[abc]
:匹配方括號內的任意一個字符。例如,[ab]d
可以匹配 ad
和 bd
。
[!abc]
:匹配不在方括號內的任意一個字符。例如,[!ab]d
可以匹配 cd
和 ed
。
{m,n}
:匹配大括號內的任意一個字符串。例如,file{1,2}.txt
可以匹配 file1.txt
和 file2.txt
。
*(.)
:匹配任意長度的任意字符,但只顯示最后一個匹配的文件。例如,ls *(.)
可以列出當前目錄下所有文件的名稱,但不包括子目錄中的文件。
!(.)
:匹配當前目錄下的所有非隱藏文件。例如,ls !(.)
可以列出當前目錄下所有非隱藏的文件的名稱。
要在Linux中使用通配符進行文件查找,可以在命令行中使用 find
命令。例如,要查找當前目錄及其子目錄下所有以 .txt
結尾的文件,可以使用以下命令:
find . -name "*.txt"
要查找當前目錄下所有不以 .txt
結尾的文件,可以使用以下命令:
find . ! -name "*.txt"