在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
请注意,在使用通配符时要小心,因为它们可能会匹配到不希望操作的文件。在执行删除或其他危险操作之前,请确保你正确地使用了通配符,并仔细检查匹配到的文件列表。