*unix 下批量重命名

  最近下了《龙珠 • 超》全集回来,但是里面的文件命名给我的感觉很蛋疼;我想改一下文件名,所以有了批量重命名的这个需求「毕竟,谁也不想手动对一百多个文件重命名吧」。

  解决问题的常规操作 • 谷歌;但是这次并没有料想的那么顺利。因为大部分的搜索结果都是说用rename 这个命令行工具来实现批量重命名;但是,我试了不行>_<「虽然不知道是什么原因导致不行(猜测是匹配问题)」。后来找着找着,找到了for 循环结合mv 来达到批量重命名的方法。

# 重命名当前文件夹所有mkv 后缀的文件:新文件名为sed 替换后的文件名
for file in *.mkv;
do mv "$file" "`echo $file | sed 's/ (BD 1920x1080 x.264 Flac)//'`";
done

  当然,如果你想统一在文件名前插入指定字符串或者取指定的subString 也是可以的。

# 插入前缀
do mv "$file" "prepend$file";
# 取subString
mv $file ${file:8}

  如果你只是纯粹的删除某些前缀,那么下面的操作会更简洁一些。

# 将image 开头去掉:image001.png > 001.png
do mv "$file" "${file#image}";

参考

您的浏览器已过时

要正常浏览本网站请升级您的浏览器。现在升级

×