Apakah ada cara untuk mengetahui tipe MIME (atau disebut "Content-Type"?) Dari file dalam skrip bash Linux?
Alasan saya membutuhkannya adalah karena ImageShack tampaknya memerlukannya untuk mengupload file, karena untuk beberapa alasan ia mendeteksi file .png sebagai application/octet-stream
file.
Saya telah memeriksa file tersebut, dan itu benar-benar gambar PNG:
$ cat /1.png
?PNG
(with a heap load of random characters)
Ini memberi saya kesalahan:
$ 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>
Ini berfungsi, tetapi saya perlu menentukan MIME-TYPE.
$ curl -F "fileupload=@/1.png;type=image/png" http://www.imageshack.us/upload_api.php
linux
bash
content-type
mime
mime-types
daun mint
sumber
sumber
file --mime-type FILE_NAME | awk '{print $2}'
file -b --mime-type FILE_NAME
mengembalikan hanya jenis pantomimkmimetypefinder filename
application/xml
atautext/xml
salah satu alat lain (selain file) yang dapat Anda gunakan adalah
xdg-mime
misalnya
xdg-mime query filetype <file>
jika kamu punya yum,
yum install xdg-utils.noarch
Contoh perbandingan xdg-mime dan file pada file Subrip (subtitle)
pada file di atas hanya menampilkannya sebagai teks biasa.
sumber
$ less $(which xdg-mime)
versi file <5: file -i -b / path / to / file
file version> = 5: file --mime-type -b / path / to / file
sumber
Coba
file
perintah dengan-i
opsi.-i
option Menyebabkan perintah file untuk mengeluarkan string jenis mime daripada yang lebih tradisional yang bisa dibaca manusia. Jadi mungkin dikatakantext/plain; charset=us-ascii
daripadaASCII text
.sumber
file --mime berfungsi, tetapi tidak --mime-type. setidaknya untuk RHEL 5 saya.
sumber