我的目录中有这些文件:
mmm.1
mmm.2
mmm.3
.
.
.
.
.
我想将它们重命名为:
mmm.31
mmm.32
mmm.33
.
.
.
只需将数字“30”添加到每个文件名的尾随数字即可。
答案1
已修改:在您告知我们您正在处理约 300 个文件后,需要修改答案。在下面编辑的答案中,将数字 300 替换为预先存在的文件的确切上限数字。
for file in mmm.{300..1} ; do mv "${file}" "${file%.*}.$((30+${file#*.}))" ; done
这个答案非常有效,因为它bash
使用bash
本机功能完成所有操作,并且不需要外部程序或启动子进程。
${file%.*}
返回句点之前的文件名前缀。`$((..)) 是 bash 的数学运算习惯用法。
${file#*.}
返回句点后的文件名后缀。如果您担心文件名可能包含多个嵌入句点,请将其替换#
为##
.
请参阅man bash
参考资料 获取更多详细信息和许多其他非常酷的本机功能。