如何将文件重命名为单调递增的序列号并后跟后缀?

如何将文件重命名为单调递增的序列号并后跟后缀?

我想将特定目录下的所有文件重命名为数字后跟后缀。例如,我想将所有 *.jpg 文件重命名为 1.jpg、2.jpg、3.jpg、...

我考虑过使用find它(类似于find ./*.jpg --exec mv {} <number_of_iteration>.jpg),但我不知道我应该把什么放进去<number_of_iteration>

我可以用find这个来做吗?或者有更好的方法吗?

答案1

您需要单独维护迭代。例如,使用move_count包含以下内容的脚本:-

[ -w ~/MoveCount ] || echo 0 >~/MoveCount
read count <~/MoveCount
((++count))
echo $count >~/MoveCount
mv "$1" "$count.${1##*.}"

那么你的find命令将变成:

find -iname "*.jpg" -exec bash -c "move_count {}" \;

请注意,之所以bash显式调用,是因为默认设置sh无法理解我使用的某些语法。或者,将#!/bin/bash的第一行设为move_count

相关内容