在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
。