在Linux中,通配符(wildcard)用于匹配文件名或路径。要使用通配符匹配多个文件,可以在命令行中使用ls、find等命令。以下是一些常见的通配符及其用法:
*:匹配任意长度的任意字符。例如,*.txt将匹配所有扩展名为.txt的文件。
?:匹配任意单个字符。例如,file?.txt将匹配file1.txt、file2.txt等,但不会匹配file0.txt。
[...]:匹配方括号内的任意一个字符。例如,[ab].txt将匹配a.txt和b.txt,但不会匹配c.txt。如果方括号内包含多个字符,如[a-z].txt,则只匹配小写字母开头的文件名。
{...}:匹配大括号内的任意一个字符串。例如,{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" \)