我知道有很多关于向多个文件添加扩展名的问题。但他们都无法完成我的工作。
我有一大堆没有扩展名的图像,其中大多数是 png,但也有 jpg 文件,也许还有 tiff。
我怎样才能正确重命名它们?
也许是这样的:
for f in /some/dir/*; do
type="$( file -bi -- "$f" )"
case "${type%%;*}" in
image/jpeg) ext=jpg ;;
image/png) ext=png ;;
image/tiff) ext=tiff ;;
*) printf '%s: %s: unknown file type\n' "${0##*/}" "$f" >&2; ext='' ;;
esac
if [ -n "$ext" ]; then mv -n -- "$f" "${f}.${ext}"; fi
done
Run Code Online (Sandbox Code Playgroud)