删除所有的 .bak 后缀
1 | rename 's/\.bak$//' *.bak |
把 .JPEG 文件后缀修改为 .jpg
1 | rename 's/\.JPEG$/\.jpg/' *.JPEG |
把所有文件的文件名改为小写
1 | rename 'y/A-Z/a-z/' * |
将 abcd.jpg 重命名为 abcd_efg.jpg
1 | for var in *.jpg; do mv "$var" "${var%.jpg}_efg.jpg"; done |
将 abcd_efg.jpg 重命名为 abcd_lmn.jpg
1 | for var in *.jpg; do mv "$var" "${var%_efg.jpg}_lmn.jpg"; done |
把文件名中所有小写字母改为大写字母
1 | for var in `ls`; do mv -f "$var" `echo "$var" |tr a-z A-Z`; done |
把格式 *_?.jpg 的文件改为 *_0?.jpg
1 | for var in `ls *_?.jpg`; do mv "$var" `echo "$var" |awk -F '_' '{print $1 "_0" $2}'`; done |
把文件名的后四个字母变为 vzomik
1 | for var in `ls`; do mv -f "$var" `echo "$var" |sed 's/....$/vzomik/'`; done |
把.txt变成.txt_bak 的后缀
1 | ls *.txt|xargs -n1 -i{} mv {} {}_bak |
批量替换文件名
1 |
|
1.变量oldext和newext分别指定旧的扩展名和新的扩展名。dir指定文件所在目录;
2.“ls $dir | grep .$oldext”用来在指定目录dir中获取扩展名为旧扩展名的所有文件;
3.在循环体内先利用cut命令将文件名中“.”之前的字符串剪切出来,并赋值给name变量;接着将当前的文件名重命名为新的文件名。
通过这个脚本,所有照片的扩展名都成功修改。为了使这个脚本更具有通用型,我们可以增加几条read命令实现脚本和用户之间的交互。改进版的脚本如下:
1 |
|
修改后的脚本可以批量修改任意扩展名。