MIME türleri ve Dosya .extensions arasındaki ilişki nedir?


19

Burada yanlış bir fikrim olabilir ama düşündüm ki:

MIME türleri , bir dosyanın içine yerleştirilmiş tanımlayıcı kodlardır .
Dosya .extensions dosyanın için suffixed özdeşleşmeyi kodlarıdır isim .

Loş karanlık çağlarda duyduğum bir şeyden Linux'un uzama agnostik olduğunu düşündüm ... (belki de ilk günlerde oldu ve o zamandan beri işler değişti ...?)

Son zamanlarda, İşletim Sistemi düzeyinde , bir dosya .extension'ın (bildiğim kadarıyla) ilgili Uygulama programıyla ilişkilendirmenin tek yolu olduğu Windows dünyasından geldim .

Bilmiyorum Çünkü neden , ben bulmak o "fred" adlı bir dosya bu Kaygılı biraz ve bir dosya "fred.txt" Bir Metin Editör hem açık olarak adlandırdığınız.

Burada iş başında kesin bir hiyerarşi var mı?

Yanıtlar:


16

MIME türleri türleri adlandırmanın bir yoludur. Bir dosya türünün nasıl belirlendiğiyle ilgisi yoktur.

Bir dosyanın türünü belirlemenin iki yolu vardır: a) Uzantısına bakın ve doğru olduğunu umun veya b) içeriğine bakın ve sonra buna dayanarak tahmin edin. Bir dosyanın uzantısı yoksa b tek seçenektir.

Birçok (ikili) dosya biçiminde, türlerini belirlemek için bakabileceğiniz belirli bir başlık vardır. Bu, b seçeneğini bu türler için oldukça güvenilir kılar.

Düz metin dosyası biçimleri genellikle yapılarına göre belirlenebilir (bir dosya çok fazla html etiketi içeriyorsa, muhtemelen bir html dosyasıdır).

Unix ve linux sistemlerinde file, dosyanın içeriğini temel alarak dosyanın türünü bulmak için komut satırı yardımcı programını kullanabilirsiniz.

Dosya yöneticisi genellikle a ve b seçeneklerinin bazı kombinasyonlarını kullanır (örn., Önce dosya uzantısına bakın, bilinmiyorsa (veya dosyanın bir uzantısı yoksa), içeriğe bakın).

Bir dosyanın türü, yaygın linux dosya sistemlerinde meta veri olarak depolanmaz.


14

Linux'ta, dosya uzantısı dosya adının bir parçasıdır ve aslında işletim sistemi için bir şey ifade etmez. MIME türü, dosyanın içeriğinin açıklamasıdır. fredve fred.txther ikisinin de MIME türü olurdu text/plain.

Nautilus gibi dosya yöneticileri, dosyayı açmak için hangi programı açacağınızı bilmek üzere bu MIME türünü kullanır. Bir terminalde xdg-openkomut aynı şeyi yapar. Ancak bu, işletim sistemi düzeyi değil kullanıcı alanı düzeyidir.

Dosyalar aslında bu mime türünü içermez, ancak onları açan programlar bu MIME türünün ne olduğunu bulmak için çeşitli yöntemler kullanır. Bazıları sadece dosya uzantısına dayanır, ancak çoğu dosyanın başında verilere bakmak da dahil olmak üzere tekniklerin bir karışımını kullanır.

Dosyanın başlangıcında yalnızca ASCII karakterleri olarak temsil edilebilecek baytlar varsa, bunun bir metin dosyası olduğunu varsaymak güvenlidir. Uzantı, .html gibi bir şeyse, program bunun bir HTML sayfası olduğunu varsayar ve bu nedenle bir web tarayıcısıyla açar. Aynı şey ikili dosya formatları için de geçerlidir. Örneğin, bitmap dosya biçiminin ASCII'de 'BMP' ile başlayıp görüntüyü temsil eden ikili veri ile başladığını biliyorum.

Basitçe söylemek gerekirse, Linux programları bir dosyadaki verilere ve dosya uzantısına dayalı eğitimli bir tahmin yapar. Bu çok güvenilir görünmeyebilir, ancak kullanılan algoritmalar verdiğim örneklerden daha karmaşıktır ve gerçekten doğrudur.


5

Linux dünyasında Dosya uzantıları, dosya türü için yalnızca bir göstergedir. "Dosya" adında bir dosyanın türünü tahmin eden bir komut satırı aracı vardır.

Bu türü elde etmek için esas olarak 3 gösterge vardır:

  • Uzantı
  • Dosya sistemindeki özel öznitelikler (sembol veya sabit bağlantı, klasör, giriş aygıtı vb. Gibi)
  • İçerik
    • İkili (yürütülebilir dosyalardaki ELF bilgileri gibi)
    • Metinsel (gibi <html>, #!/bin/bash)

Dosya türü ile MIME türü arasındaki ilişki, MIME'nin yalnızca bir dosyanın türünü (örneğin text/css) temsil eden bir standart olmasıdır .

Linux dosya türünü "tahmin eder" ve o tür için ilişkili bir program açar.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.