在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" \)