我有多张卡车的图片,它们的名称杂乱无章,格式不同(jpeg,jpg,png等),我想将它们重命名为“ truck1.jpeg”,“ truck2.jpg”,“ truck3.png”和以此类推。如何使用#include <stdio.h>
#include <stdlib.h>
void back(char*k)
{
printf("%c",'O');
while(*k) //->not work??
{
back(++k);
}
printf("%c",'f');
}
int main()
{
char k[]="he";
back(k);
return 0;
}
命令?
答案 0 :(得分:3)
使用bash
和mv
可能更容易,因为AFAIK您需要像bash
这样的东西来生成数字序列。在bash
i=1
for x in *; do
echo $x '->' truck$i.${x##*.}
mv "$x" truck$i.${x##*.} && i=$((i+1))
done
for x in *
对名称不以点开头且位于当前目录中的所有文件进行操作。您可以调整glob使其具有更高的排他性,但是如果文件位于其他目录中,则需要修改此脚本。同样,将文件收集到一个目录中或将其放入脚本文件并使用find ... -exec
在多个目录中执行可能更容易。
这使用i
作为计数器来生成数字。诀窍是${x##*.}
表达式,它使用文件名并删除所有内容,直到最后一个点。这使您可以保留文件扩展名并将其重新附加到新名称。 您必须注意正确设置i
,否则您将用新文件覆盖旧的truck1
文件。