在Linux中,通配符是一种非常有用的工具,它允许你在文件名或路径中使用特殊字符来匹配一个或多个文件
-
星号(*):匹配任意长度的任意字符。例如,
*.txt
匹配所有扩展名为.txt
的文件。 -
问号(?):匹配任意单个字符。例如,
file?.txt
匹配file1.txt
、fileA.txt
等,但不匹配file12.txt
。 -
方括号([]):匹配方括号内的任意一个字符。例如,
file[123].txt
匹配file1.txt
、file2.txt
和file3.txt
。你还可以使用连字符(-)来表示字符范围,如[a-z]
匹配所有小写字母。 -
花括号({}):匹配花括号内的任意一个字符串。例如,
file{1,2,3}.txt
匹配file1.txt
、file2.txt
和file3.txt
。你还可以使用逗号分隔多个字符串,如file{one,two,three}.txt
匹配fileone.txt
、filetwo.txt
和filethree.txt
。
以下是一些使用通配符的示例:
- 列出当前目录下所有
.txt
文件:ls *.txt
- 删除当前目录下所有以
temp
开头的文件:rm temp*
- 查找
/home/user
目录下所有以.jpg
或.png
结尾的图片文件:find /home/user \( -iname "*.jpg" -o -iname "*.png" \)
- 将当前目录下所有
.txt
文件重命名为.bak
扩展名:for file in *.txt; do mv "$file" "${file%.txt}.bak"; done
请注意,在使用通配符时要小心,因为它们可能会匹配到不希望操作的文件。在执行删除或其他危险操作之前,请确保你正确地使用了通配符,并仔细检查匹配到的文件列表。