重命名文件并更改扩展名

时间:2015-10-08 22:19:15

标签: bash shell

我有一个包含近2000张图片的目录,其中一些图片没有正确的扩展名。这些扩展的格式如下*.images(xxx) 1。是否可以将扩展名更改为jpg

更新 我有这个代码,但它省略了扩展名。

declare -i i=0;
for f in *;
    do
        fn=$i".${f##*.jpg}";
        mv "$f" "/home/vianney/Desktop/IPIP/$fn";
        i=$((i+1));
    done
clear

如何更改此代码以显示文件类型

2 个答案:

答案 0 :(得分:3)

这可以通过for循环完成:

#!/bin/sh

for i in *
do mv "${i}" "${i%.*}.jpg"
done

对以下评论中提到的问题进行扩展;这是程序的一个变体,它在处理文件时附加一个连续的数字后缀:

#!/bin/sh

count=0
for i in *.*
do mv "${i}" "${i%.*}.${count}.jpg"
   count=$((count + 1))
done

答案 1 :(得分:0)

我会选择mv和bash oneliner: for file in *.images*; do mv "$file" "${file/\.*/\.jpg}"; done;

让我知道它是否对你有所帮助?