在Linux中,通配符是一种非常强大的工具,可以帮助我们进行批量操作
*(星号):匹配任意长度的任意字符。?(问号):匹配任意单个字符。[ ](方括号):匹配方括号内的任意一个字符。{ }(大括号):匹配大括号内的任意一个字符串。以下是一些使用通配符进行批量操作的示例:
.txt结尾的文件:ls *.txt
.txt结尾的文件重命名为以.bak结尾:for file in *.txt; do mv "$file" "${file%.txt}.bak"; done
.txt结尾的文件,并将它们移动到名为text_files的目录中:mkdir text_files
find . -type f -name "*.txt" -exec mv {} text_files/ \;
.jpg、.png、.gif)的尺寸调整为宽度为300像素,高度自适应:for file in *.jpg *.png *.gif; do
convert "$file" -resize 300x300\> "${file%.*}_resized.${file##*.}"
done
这里使用了convert命令,它是ImageMagick工具的一部分。如果尚未安装,请先运行sudo apt-get install imagemagick(对于Debian/Ubuntu系统)或sudo yum install imagemagick(对于RHEL/CentOS系统)。
~(临时文件)结尾的文件:rm ~*
在使用通配符时,请务必小心,因为它们可能会导致意外的文件操作。在执行批量操作之前,建议先使用echo命令查看将要操作的文件列表,例如:echo *.txt。