Linux:如何更改一组文件的扩展名?

Linux:如何更改一组文件的扩展名?

我有一个目录,里面全是以 .xxx 结尾的文件。(Apple.xxx,,) Orange.xxxBannana.xxx

我想将它们的扩展名更改为 .yyy。(Apple.yyy,,)Orange.yyyBannana.yyy

使用基本 shell 命令完成此操作的最快方法是什么?

答案1

看一下重命名命令:rename .xxx .yyy *.xxx

答案2

 for i in *.xxx; do 
     mv "$i" "${i%.*}.yyy"
 done

“${i%.*}”中的百分号表示使用全局百分号后面的模式,将其应用于变量 i 的值,并从该值的尾部删除最短的可能匹配。这称为参数/变量扩展,用途广泛。您还可以使 glob 成为最长的可能匹配,或者使 glob 从一开始就匹配。 这篇 Linux Journal 文章都是关于参数扩展。

它被放在双引号中,这样如果文件名中有空格并且 IFS 变量设置为包含空格(常态),则文件名仍将作为一个参数传递给 mv。

答案3

安装韓國然后执行以下操作:

mmv -r "*.xxx" "#1.yyy"

答案4

已经有很多答案了,但我会添加我自己的答案。

for i in *.xxx; do
    mv "$i" "`basename $i .xxx`.yyy"
done

相关内容