Есть ли способ узнать тип MIME (или он называется «Content-Type»?) Файла в сценарии Linux bash?
Причина, по которой мне это нужно, заключается в том, что ImageShack, похоже, нужен для загрузки файла, поскольку по какой-то причине он обнаруживает файл .png как application/octet-stream
файл.
Я проверил файл, и это действительно изображение PNG:
$ cat /1.png
?PNG
(with a heap load of random characters)
Это дает мне ошибку:
$ curl -F "fileupload=@/1.png" http://www.imageshack.us/upload_api.php
<links>
<error id="wrong_file_type">Wrong file type detected for file 1.png:application/octet-stream</error>
</links>
Это работает, но мне нужно указать MIME-TYPE.
$ curl -F "fileupload=@/1.png;type=image/png" http://www.imageshack.us/upload_api.php
file --mime-type FILE_NAME | awk '{print $2}'
file -b --mime-type FILE_NAME
возвращает только тип пантомимыkmimetypefinder filename
application/xml
илиtext/xml
один из других инструментов (помимо файла), который вы можете использовать, это
xdg-mime
например
xdg-mime query filetype <file>
если у тебя есть вкусняшка,
yum install xdg-utils.noarch
Пример сравнения xdg-mime и файла в файле Subrip (субтитры)
в приведенном выше файле отображать его только как обычный текст.
источник
$ less $(which xdg-mime)
версия файла <5: file -i -b / path / to / file
версия файла> = 5: file --mime-type -b / path / to / file
источник
Попробуйте
file
команду с-i
опцией.-i
option Заставляет команду file выводить строки типа mime, а не более традиционные, удобочитаемые человеком. Таким образом,text/plain; charset=us-ascii
скорее можно сказать , чемASCII text
.источник
file --mime работает, но не --mime-type. по крайней мере для моего RHEL 5.
источник