给所有文件一个 .jpg 扩展名

Mar*_*int 8 linux bash

我有一个目录,其中一些文件的扩展名是大写 (.JPG) 而不是小写。

我想确保每个文件的扩展名都是 .jpg。我将如何从 shell 提示符执行此操作?

Joh*_*web 15

使用Shell 参数扩展

for f in *.JPG; do
    mv "${f}" "${f%%.JPG}.jpg"
done
Run Code Online (Sandbox Code Playgroud)

"字符会照顾包含空格的文件名,如照片经常做。

  • +1 即使文件名中有空格,此解决方案也有效,但您的意思是“$f”而不是“f”。 (5认同)

uzs*_*olt 10

如果您可以使用外部工具(不仅是 bash),请检查rename命令!

rename .JPG .jpg *
Run Code Online (Sandbox Code Playgroud)

rename是的一部分util-linux


Kar*_*ath 0

如果文件名中没有空格:

for f in *.JPG; do mv $f `echo $f | sed 's/JPG$/jpg/'`; done
Run Code Online (Sandbox Code Playgroud)