首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在命令行和Xargs中批量重命名文件?

在命令行和Xargs中批量重命名文件?
EN

Stack Overflow用户
提问于 2018-05-04 04:52:00
回答 2查看 0关注 0票数 0

我有以下结构:

代码语言:javascript
复制
.
..
a.png
b.png 
c.png

我运行了一个命令来调整它们的大小

代码语言:javascript
复制
ls | xargs -I xx convert xx -resize xx.jpg

现在我的目录是这样的:

代码语言:javascript
复制
.
..
a.png.jpg
a.png
b.png.jpg
b.png
c.png.jpg
c.png

第一个问题是,我如何重命名文件,以便我可以只有一个扩展名。不是两个? 第二个问题是,在将来使用xargs时,如何将文件的扩展名更改为第二个命令?

EN

Stack Overflow用户

发布于 2018-05-04 13:27:24

第一个问题:

代码语言:javascript
复制


第二个问题:

据我所知,这是无法完成的。最好的办法是使用一个带有参数替换的for循环,就像上面那样:

代码语言:javascript
复制
for file in *.png; do
  convert "$file" -resize "${file%.png}.jpg"
done

如果你在你想要转换的子目录中有文件,那么你可以:

代码语言:javascript
复制
find . -type f -name '*.png' |
while read file; do
  convert "$file" -resize "${file%.png}.jpg"
done
票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100004025

复制
相关文章

相似问题

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