首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >批量重命名多种文件类型的目录中的文件

批量重命名多种文件类型的目录中的文件
EN

Stack Overflow用户
提问于 2016-03-04 23:08:59
回答 1查看 59关注 0票数 0

我需要重命名一批pngs,并且我当前有这个.sh文件

代码语言:javascript
复制
echo Renaming all files.
echo Please enter a prefix
read prefix
echo Please enter a filetype
read filetype

j=1;
for i in *.{jpg,jpeg,png};
do mv "$i" "$prefix"-"$j"."$filetype";
echo Renaming "$i" to "$prefix"-"$j"."$filetype";
let j++;
done

echo Renaming Complete

当我运行它时,它丢失了前两个文件,并返回以下内容

代码语言:javascript
复制
mv: rename *.jpg to on-1.jpg: No such file or directory
Renaming *.jpg to on-1.png
mv: rename *.jpeg to on-2.jpg: No such file or directory
Renaming *.jpeg to on-2.png

然后我剩下的是on-3.png -更高版本的文件。是什么导致了之前的错误?

EN

回答 1

Stack Overflow用户

发布于 2016-03-04 23:15:01

*.jpg *.jpeg *.png扩展首先在*.{jpg,jpeg,png}中发生,也就是说,它创建了三个单词:*.jpg *.jpeg *.png。在给定的目录中既没有jpg也没有jpeg文件,因此*没有什么可以展开的,因此它仍然是一个文字星号。要更改行为,可以设置nullglob选项:

代码语言:javascript
复制
shopt -s nullglob

*.jpg将扩展为空字符串,并且不会在循环中迭代。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35799351

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档