Я надеюсь, что кто-нибудь объяснит мне, как я могу изменить тип файла. Недавно я загрузил свои изображения на свой ноутбук, и половина из них сохранена в виде файла, а не изображения, что означает, что я не могу загружать их на веб-сайты для печати.
Я ищу пошаговый процесс, а также могу ли я выполнять их все одновременно, или их нужно делать индивидуально. Мне нужно поменять 500+.
Необходимо смочь использовать mimetype
утилита - от man mimetype
:
NAME
mimetype - Determine file type
SYNOPSIS
mimetype [options] [-] files
DESCRIPTION
This script tries to determine the mime type of a file using the Shared
MIME-info database. It is intended as a kind of file(1) work-alike, but
uses mimetypes instead of descriptions.
Так, например:
$ mimetype somefile
somefile: image/jpeg
Однако по умолчанию, mimetype
будет "верить" расширению если существующий - так:
$ cp somefile somefile.gif
$ mimetype somefile.gif
somefile.gif: image/gif
Можно сказать этому использовать только волшебные байты файла, чтобы сделать определение путем добавления -M
переключатель:
$ mimetype -M somefile.gif
somefile.gif: image/jpeg
и можно добавить -b
дать a brief
описание:
$ mimetype -bM somefile.gif
image/jpeg
Если бы Вы хотели написать сценарий переименования, то я предложил бы что-то вроде этого:
#!/bin/bash
while read -r -d '' f; do
mt="$(mimetype -bM "$f")"
ext="${mt##*/}"
case "$ext" in
jpeg|gif|png)
echo mv -v "$f" "$f.$ext"
;;
*)
echo "skipping mimetype $mt... "
;;
esac
done < <(find -type f -print0)
Примечания:
echo mv
просто выводы, что это сделало бы - проверяют и проверяют это дважды, это ведет себя как ожидалось на Ваших файлах прежде, чем удалить echo
jpeg
,gif
, и png
файлы: если будут другие типы изображения, то необходимо будет добавить их явноМожет быть другой - легче - инструменты использования опций как exiftool