更改Shell脚本中多个文件夹的名称

时间:2014-01-04 11:30:40

标签: shell

我开始学习Shell Scripting。我想按顺序重命名文件夹名称。我有一些文件夹来自1,2,3 ...... 1000.现在我想通过shell脚本分别重命名它1501,1502,... 2500。如何做到这一点。  谢谢你的帮助

2 个答案:

答案 0 :(得分:2)

如果你开始考虑它,它真的很容易,不好解释一下:
你经历了从1到1500的每个数字 并将其重命名为index + 1500

要添加数字,如果您在bash上,则可以使用算术运算 如果您只是在shell环境中,则使用命令bc。 (我将使用bc,因为它应该可以在任何地方使用)

使用命令seq 1500 - >输出为:1 2 3 ... 1500
制作for循环:for f in $(seq 1500); do ###later###; done

所以当前号码($f)是文件夹名称

新名称将是当前号码($f)+ 1500:
(因为您希望文件夹1成为新文件夹1501)
newname=$(echo "$f + 1500" | bc)

然后你只需说mv $f $newname
完了:))

最终剧本:
内联版本:

for f in $(seq 1500); do mv $f $(echo "$f + 1500" | bc); done

'更好的' (更易阅读)版本:

for f in $(seq 1500); do
    newname=$(echo "$f + 1500" | bc)
    mv $f $newname
done

如果你想使用bash算术运算:
$(echo "$f + 1500" | bc)替换为$(($f + 1500))

我希望我能帮助你一点:)

答案 1 :(得分:1)

如果您的文件夹具有完全相同的名称,则下面的代码将起作用...您可以在其他情况下即兴创作。如果命名和重命名模式不同,您可能必须略有不同。

for (( sourcedir=1,destdir=1501; sourcedir<=1000;sourcedir++,destdir++ ))
do
   mv "$sourcedir" "$destdir"
done