MIME प्रकार और फ़ाइल .extensions के बीच क्या संबंध है?


19

मेरे यहाँ गलत विचार हो सकता है, लेकिन मुझे लगा कि:

MIME प्रकार एक फ़ाइल के अंदर एम्बेडेड कोड की पहचान कर रहे हैं ।
फ़ाइल .extensions कोड नाम निष्क्रिय कर रहे हैं, फ़ाइल के नाम के लिए प्रत्यय ।

मैंने सोचा था, कुछ मैंने मंद अंधेरे युगों में सुना है, कि लिनक्स .extension अज्ञेयवादी था ... (शायद यह शुरुआती दिनों में था, और तब से चीजें बदल गई हैं ...?)

मैं हाल ही में विंडोज की दुनिया से आया हूं, जहां, ऑपरेटिंग-सिस्टम स्तर पर , एक फ़ाइल .extension एकमात्र तरीका है (जहां तक ​​मुझे पता है) इसे अपने प्रासंगिक एप्लिकेशन प्रोग्राम के साथ जोड़ना है।

क्योंकि मैं नहीं जानता कि क्यों , मुझे यह थोड़ा सा असंगत लगता है कि "फ्रेड" नामक एक फाइल और "फ्रेडेक्स" नामक एक फाइल दोनों एक टेक्स्ट एडिटर में खुलते हैं।

क्या यहां काम पर एक स्पष्ट-पदानुक्रम है?

जवाबों:


16

MIME प्रकार केवल नाम टाइप करने का एक तरीका है। फ़ाइल का प्रकार कैसे निर्धारित किया जाता है, इससे उनका कोई लेना-देना नहीं है।

फ़ाइल के प्रकार को निर्धारित करने के दो तरीके हैं: ए) इसके विस्तार को देखें और आशा करें कि यह सटीक है या बी) इसकी सामग्री को देखें और फिर उसी के आधार पर अनुमान लगाएं। अगर किसी फ़ाइल में कोई एक्सटेंशन नहीं है b एकमात्र विकल्प है।

कई (बाइनरी) फ़ाइल स्वरूपों में एक विशिष्ट हेडर होता है जिसे आप उनके प्रकार को निर्धारित करने के लिए देख सकते हैं। यह उन प्रकारों के लिए विकल्प बी को काफी विश्वसनीय बनाता है।

सादा पाठ फ़ाइल स्वरूपों को अक्सर उनकी संरचना से निर्धारित किया जा सकता है (यदि किसी फ़ाइल में बहुत सारे html टैग हैं, तो यह संभवतः एक html फ़ाइल है)।

यूनिक्स और लिनक्स सिस्टम पर आप fileइसकी सामग्री के आधार पर फ़ाइल के प्रकार का पता लगाने के लिए कमांड लाइन उपयोगिता का उपयोग कर सकते हैं।

फ़ाइल प्रबंधक अक्सर विकल्प ए और बी के कुछ संयोजन का उपयोग करते हैं (उदाहरण के लिए फ़ाइल एक्सटेंशन को पहले देखें, अगर यह ज्ञात नहीं है (या फ़ाइल में एक्सटेंशन नहीं है), तो सामग्री को देखें)।

फ़ाइल का प्रकार सामान्य लिनक्स फ़ाइल सिस्टम पर मेटाडेटा के रूप में संग्रहीत नहीं है।


14

लिनक्स में, फ़ाइल एक्सटेंशन फ़ाइल नाम का हिस्सा है और वास्तव में ऑपरेटिंग सिस्टम के लिए इसका कोई मतलब नहीं है। MIME प्रकार फ़ाइल की सामग्री का विवरण है। fredऔर fred.txtदोनों का MIME प्रकार होगा text/plain

फ़ाइल प्रबंधक, जैसे Nautilus इस MIME प्रकार का उपयोग यह जानने के लिए करते हैं कि किस फ़ाइल को किस फ़ाइल के साथ खोला जाए। एक टर्मिनल में, xdg-openकमांड एक ही काम करता है। हालांकि, यह यूजर स्पेस लेवल है ऑपरेटिंग सिस्टम लेवल नहीं।

फ़ाइलों में वास्तव में यह माइम प्रकार नहीं होता है, लेकिन उन्हें खोलने वाले प्रोग्राम विभिन्न तरीकों का उपयोग करके यह पता लगाने का काम करते हैं कि यह MIME प्रकार क्या है। कुछ केवल फ़ाइल एक्सटेंशन पर निर्भर करते हैं, लेकिन अधिकांश तकनीक का मिश्रण का उपयोग करते हैं जिसमें फ़ाइल की शुरुआत में डेटा को देखना शामिल है।

यदि फ़ाइल की शुरुआत में केवल बाइट्स होते हैं जिन्हें ASCII वर्णों के रूप में दर्शाया जा सकता है, तो यह मान लेना सुरक्षित है कि यह एक पाठ फ़ाइल है। अगर विस्तार कुछ ऐसा है। Html, प्रोग्राम मानता है कि यह एक HTML पृष्ठ है और इसलिए इसे वेब ब्राउज़र के साथ खोलता है। यही बात बाइनरी फाइल फॉर्मेट्स के साथ काम करती है। उदाहरण के लिए, मुझे पता है कि बिटमैप फ़ाइल प्रारूप ASCII में 'बीएमपी' से शुरू होता है और उसके बाद छवि का प्रतिनिधित्व करने वाले द्विआधारी डेटा द्वारा।

सीधे शब्दों में कहें, लिनक्स प्रोग्राम एक फ़ाइल और उसके फ़ाइल एक्सटेंशन में डेटा के आधार पर एक शिक्षित अनुमान लगाते हैं। यह बहुत विश्वसनीय नहीं लग सकता है, लेकिन उपयोग किए गए एल्गोरिदम मेरे द्वारा दिए गए उदाहरणों की तुलना में अधिक जटिल हैं और वास्तव में वास्तव में सटीक हैं।


5

लिनक्स दुनिया में फ़ाइल एक्सटेंशन फ़ाइल के प्रकार के लिए केवल एक संकेतक है। एक कमांड लाइन टूल है जिसे "फाइल" कहा जाता है जो एक फ़ाइल के प्रकार का अनुमान लगाता है।

इस प्रकार को प्राप्त करने के लिए मुख्य रूप से 3 संकेतक हैं:

  • विस्तार
  • फाइलसिस्टम में विशेष गुण (जैसे सिम्फ़नी या हार्डलिंक, फ़ोल्डर, इनपुट डिवाइस, आदि)
  • सामग्री
    • बाइनरी (निष्पादन योग्यों में ईएलएफ सूचना की तरह)
    • शाब्दिक (जैसे <html>, #!/bin/bash)

फ़ाइल प्रकार और MIME प्रकार के बीच का संबंध यह है कि MIME केवल फ़ाइल के प्रकार (जैसे text/css) का प्रतिनिधित्व करने के लिए एक मानक है ।

लिनक्स फ़ाइल प्रकार का "अनुमान लगाता है" और उस प्रकार के लिए संबद्ध प्रोग्राम खोलता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.