फ़ाइल कमांड के लिए "मैजिक टेस्ट" का क्या अर्थ है?


20

मैं fileकमांड के बारे में पढ़ रहा था और मुझे कुछ समझ में आया जो मुझे बिल्कुल समझ में नहीं आया:

फ़ाइल को फ़ाइल के प्रकार को निर्धारित करने के लिए डिज़ाइन किया गया है .... फ़ाइल विचाराधीन फ़ाइल पर परीक्षण के तीन सेटों को निष्पादित करके पूरा करती है :

  • फाइलसिस्टम परीक्षण,
  • जादू परीक्षण,
  • भाषा परीक्षण

जादू परीक्षण क्या हैं ?

जवाबों:


15

यह "मैजिक बाइट्स" को संदर्भित करता है, जिसमें एक फ़ाइल की शुरुआत में कई फ़ाइल स्वरूप होते हैं जो यह दिखाते हैं कि यह किस प्रकार की फ़ाइल है।

उदाहरण के लिए यदि कोई फ़ाइल शुरू होती है #!तो उसे एक स्क्रिप्ट माना जाता है।


28

"मैजिक" यहां " मैजिक नंबरों " को संदर्भित करता है : एक विशेष मूल्य जो एक फ़ाइल में एक ज्ञात स्थान पर है जो अपने प्रकार की पहचान करता है। fileआदेश इन नंबरों के एक डेटाबेस है और वे किस प्रकार के अनुरूप हैं। लाइब्रेरी जो उस डेटाबेस के साथ जाती है, उसे कामेच्छा कहा जाता है , और आप अपने स्वयं के कार्यक्रमों से उस तक पहुंच सकते हैं।

जैसा कि हम उनके बारे में सोच सकते हैं, वे जरूरी "संख्या" नहीं हैं। उदाहरण के लिए, एक PNG छवि फ़ाइल हमेशा "\ x89PNG \ r \ n \ X1a \ n" से शुरू होती है, एक जावा वर्ग चार बाइट्स (हेक्साडेसिमल में) CA FE BA BE से शुरू होता है, और एक HTML फ़ाइल में "html" कहीं है शुरुआत के पास। यह डेटा का सिर्फ कुछ छोटा अनुक्रम है जो उस प्रकार की फ़ाइल में जाना जाता है, आमतौर पर शुरुआत के बहुत करीब।

जब लोग फ़ाइल स्वरूपों को परिभाषित कर रहे होते हैं, तो वे अक्सर इनमें से किसी एक को जानबूझकर या सिर्फ प्रारूप को एक साथ फिट करने के हिस्से के रूप में शामिल करते हैं। fileबाद में उनका उपयोग कर सकते हैं। यह वास्तव में फ़ाइल की सामग्री को देखने के अन्य तरीके भी हैं जो यह अनुमान लगाने के लिए है कि यह क्या है ("भाषा परीक्षण")।


6
ध्यान दें कि मूल रूप से, "मैजिक नंबर" विशेष रूप से, निष्पादन योग्य फ़ाइल के पहले दो बाइट्स थे, जो कर्नेल द्वारा उपयुक्त तरीके से लोड करने के लिए उपयोग किए गए थे। #!वास्तव में इसका एक उदाहरण है, क्योंकि कर्नेल स्वयं, उन बाइट्स को देखने पर, उस आदेश का आह्वान करने वाला है जो इस प्रकार है।
IMSoP
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.