根据文件类型为多个文件添加扩展名

Osa*_*zam 5 bash rename

我知道有很多关于向多个文件添加扩展名的问题。但他们都无法完成我的工作。

我有一大堆没有扩展名的图像,其中大多数是 png,但也有 jpg 文件,也许还有 tiff。

我怎样才能正确重命名它们?

lcd*_*047 5

也许是这样的:

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)