File (command)
फ़ाइल कमांड कंप्यूटर फ़ाइल में निहित डेटा के प्रकार को पहचानने के लिए यूनिक्स और यूनिक्स जैसे ऑपरेटिंग सिस्टम का एक मानक प्रोग्राम है। फ़ाइल का मूल संस्करण 1973 में यूनिक्स रिसर्च संस्करण 4 में उत्पन्न हुआ था। सिस्टम V ने कई महत्वपूर्ण परिवर्तनों के साथ एक बड़ा अद्यतन लाया, विशेष रूप से फ़ाइल प्रकार की जानकारी को द्विआधारी में संकलित करने के बजाय एक बाहरी पाठ फ़ाइल में स्थानांतरित किया। अधिकांश प्रमुख बीएसडी और लिनक्स वितरण एक मुफ्त, मुक्त-स्रोत पुनः कार्यान्वयन का उपयोग करते हैं जिसे इयान डार्विन द्वारा शुरू से 1986-87 में लिखा गया था; यह सिस्टम वी संस्करण के आधार पर एक प्रारूप के साथ एक पाठ फ़ाइल में फ़ाइल प्रकार की जानकारी रखता है। 1989 में ज्योफ कोलियर द्वारा इसका विस्तार किया गया था और तब से कई अन्य लोगों से इनपुट मिला है, जिसमें गाय हैरिस, क्रिस लोथ और एरिक फिशर शामिल हैं; 1993 के अंत से इसके रखरखाव का आयोजन क्रिस्टोस ज़ौलास द्वारा किया गया है। ओपनबीएसडी प्रणाली का अपना उपसमुच्चय कार्यान्वयन है जो खरोंच से लिखा गया है, लेकिन फिर भी जादू फ़ाइल प्रारूपित जानकारी के डार्विन/ज़ौलास संग्रह का उपयोग करता है। कमांड को आई. बी. एम. आई. ऑपरेटिंग सिस्टम में भी पोर्ट किया गया है। एकल यूनिक्स विनिर्देशन (एस. यू. एस.) निर्दिष्ट करता है कि कमांड लाइन पर निर्दिष्ट फ़ाइल पर परीक्षणों की एक श्रृंखला की जाती हैः यदि फ़ाइल को पढ़ा नहीं जा सकता है, या इसका यूनिक्स फ़ाइल प्रकार अनिर्धारित है, तो फ़ाइल प्रोग्राम इंगित करेगा कि फ़ाइल को संसाधित किया गया था लेकिन इसका प्रकार अनिर्धारित था। फ़ाइल को प्रकार निर्देशिका निर्धारित करने में सक्षम होना चाहिए, एफ. आई. एफ. ओ., साकेट, ब्लॉक विशेष फ़ाइल, और चरित्र विशेष फ़ाइल शून्य-लंबाई फ़ाइलों की पहचान की जाती है क्योंकि फ़ाइल के इस तरह के प्रारंभिक भाग पर विचार किया जाता है और फ़ाइल स्थिति-संवेदनशील परीक्षणों का उपयोग करने के लिए होती है, पूरी फ़ाइल पर विचार किया जाता है और फ़ाइल संदर्भ-संवेदनशील परीक्षणों का उपयोग करने के लिए होती है, फ़ाइल को डेटा फ़ाइल फ़ाइल के रूप में पहचाना जाता है, स्थिति-संवेदनशील परीक्षणों को आम तौर पर जादू संख्याओं के पाठ डेटाबेस के खिलाफ फ़ाइल के भीतर विभिन्न स्थानों का मिलान करके लागू किया जाता है (उपयोग अनुभाग देखें)। यह अन्य सरल तरीकों जैसे फ़ाइल एक्सटेंशन और माइम जैसी योजनाओं से अलग है। सिस्टम V कार्यान्वयन, इयान डार्विन कार्यान्वयन और ओपनबीएसडी कार्यान्वयन में, फ़ाइल कमांड लीड बाइट्स की जांच को चलाने के लिए एक डेटाबेस का उपयोग करता है। उस डेटाबेस को जादू नामक एक फ़ाइल में लागू किया जाता है, जिसका स्थान आमतौर पर/वगैरह/जादू,/usr/शेयर/फ़ाइल/जादू या इसी तरह के स्थान पर होता है। एस. यू. एस. निम्नलिखित विकल्पों को अनिवार्य करता हैः-एम फ़ाइल, स्थिति-संवेदनशील परीक्षणों वाली विशेष रूप से प्रारूपित एक फ़ाइल निर्दिष्ट करें; डिफ़ॉल्ट स्थिति-संवेदनशील परीक्षण और संदर्भ-संवेदनशील परीक्षण नहीं किए जाएंगे। - m फ़ाइल, जहाँ तक-M का संबंध है, लेकिन डिफ़ॉल्ट परीक्षण फ़ाइल में निहित परीक्षणों के बाद किए जाएंगे। - d, दी गई फ़ाइल के लिए डिफ़ॉल्ट स्थिति-संवेदनशील और संदर्भ-संवेदनशील परीक्षण करें; यह डिफ़ॉल्ट व्यवहार है जब तक कि-M या-m निर्दिष्ट न हो। - एच, किसी मौजूदा फ़ाइल या निर्देशिका की ओर इशारा करने वाले प्रतीकात्मक लिंक का उल्लेख न करें। - एल, प्रतीकात्मक लिंक का उल्लेख करें जो किसी मौजूदा फ़ाइल या निर्देशिका की ओर इशारा करता है। - i, फ़ाइल की पहचान करने के अलावा इसे और अधिक वर्गीकृत न करेंः एक अस्तित्वहीन, एक ब्लॉक विशेष फ़ाइल, एक वर्ण विशेष फ़ाइल, एक निर्देशिका, एक एफ. आई. एफ. ओ., एक साकेट, एक प्रतीकात्मक लिंक, या एक नियमित फ़ाइल। लिनक्स और बीएसडी सिस्टम इस विकल्प के साथ अलग-अलग व्यवहार करते हैं और इसके बजाय एक इंटरनेट मीडिया प्रकार ("माइम प्रकार") आउटपुट करते हैं जो मान्यता प्राप्त फ़ाइल प्रारूप की पहचान करता है। अन्य यूनिक्स और यूनिक्स जैसे ऑपरेटिंग सिस्टम इनमें से अतिरिक्त विकल्प जोड़ सकते हैं। इयान डार्विन के कार्यान्वयन में कई अन्य लोगों के बीच-'विशेष फाइलें',-k 'कीप-गोइंग' या-r 'रॉ' (नीचे दिए गए उदाहरण) को जोड़ा गया है। आदेश केवल यह बताता है कि फ़ाइल कैसी दिखती है, न कि यह क्या है (उस मामले में जहां फ़ाइल सामग्री को देखती है)। जिस फ़ाइल की सामग्री उससे मेल नहीं खाती है, उसमें एक जादुई संख्या डालकर प्रोग्राम को मूर्ख बनाना आसान है। इस प्रकार आदेश विशिष्ट स्थितियों के अलावा एक सुरक्षा उपकरण के रूप में उपयोग करने योग्य नहीं है। उदाहरण $फ़ाइल file.c file.c: C प्रोग्राम टेक्स्ट $फ़ाइल प्रोग्रामः ELF 32-बिट LSB निष्पादन योग्य, इंटेल 80386, संस्करण 1 (SYSV), गतिशील रूप से जुड़ा हुआ (साझा libs का उपयोग करता है), स्ट्रिप्ड $फ़ाइल/देव/एचडीए1/देव/एचडीए1: ब्लॉक स्पेशल (0/0) $फ़ाइल-एस/देव/एचडीए1/देव/एचडीए1: लिनक्स/आई386 एक्सटी2 फ़ाइलसिस्टम नोट करें कि-एस केवल इयान डार्विन शाखा पर उपलब्ध एक गैर-मानक विकल्प है, जो फ़ाइल को डिवाइस फ़ाइलों को पढ़ने के लिए कहता है और उन्हें केवल डिवाइस फ़ाइलों के रूप में पहचानने के बजाय उनकी सामग्री की पहचान करने का प्रयास करता है। आम तौर पर फ़ाइल डिवाइस फ़ाइलों को पढ़ने की कोशिश नहीं करती है क्योंकि ऐसी फ़ाइल को पढ़ने से अवांछनीय दुष्प्रभाव हो सकते हैं। $फाइल-k-r libmagic-dev_5.35-4_armhf.deb #(लिनक्स पर) libmagic-dev_5.35-4_armhf.deb: डेबियन द्विआधारी पैकेज (प्रारूप 2)-वर्तमान ar संग्रह-डेटा इयान डार्विन के गैर-मानक विकल्प-k के माध्यम से प्रोग्राम पहले हिट मिलने के बाद नहीं रुकता है, बल्कि अन्य मिलान पैटर्न की तलाश करता है। - r विकल्प, जो कुछ संस्करणों में उपलब्ध है, अप्रकाशित नए पंक्ति वर्ण को इसके ऑक्टल प्रतिनिधित्व के बजाय इसके कच्चे रूप में प्रदर्शित करने का कारण बनता है। $फ़ाइल compressed.gz compressed.gz: gzip संपीड़ित डेटा, अपवर्तित, मूल फ़ाइल नाम, 'संपीड़ित', अंतिम संशोधितः थू 26 जनवरी 14:08:23 2006, ओएसः यूनिक्स $फ़ाइल-i compressed.gz #(लिनक्स पर) compressed.gz: अनुप्रयोग/x-gzip; चारसेट = द्विआधारी $फ़ाइल data.ppm data.ppm: Netpbm PPM "रॉबिट्स" छवि डेटा $फ़ाइल/बिन/कैट/बिन/कैटः 2 आर्किटेक्चर/बिन/कैट के साथ मैक-ओ सार्वभौमिक द्विआधारी (वास्तुकला ppc7400 के लिए): मैक-ओ निष्पादन योग्य ppc/बिन/कैट (वास्तुकला i386 के लिए) लिबमैजिक लाइब्रेरी फ़ाइल के इयान डार्विन/क्रिस्टोस ज़ौलास संस्करण के संस्करण 4 तक, फ़ाइल की कार्यक्षमता को एक लिबमैजिक लाइब्रेरी में शामिल किया गया है जो सी (और सी-संगत) लिंकिंग के माध्यम से सुलभ है; फ़ाइल को उस लाइब्रेरी का उपयोग करके लागू किया जाता है। संदर्भ बाहरी लिंक मैनुअल पृष्ठ-एक गैर-इयान डार्विन कार्यान्वयन-एक गैर-इयान डार्विन, गैर-एस. यू. एस. कार्यान्वयन अन्य फाइन फ्री फाइल कमांड-प्रमुख बी. एस. डी. और लिनक्स वितरणों में उपयोग की जाने वाली फाइल के इयान डार्विन के संस्करण के लिए होमपेज। डाक सूची बिनवॉक जारी करती है, एक फर्मवेयर विश्लेषण उपकरण जो लिबमैजिक हस्ताक्षर ट्रिड के आधार पर फ़ाइलों को तराशता है, एक विकल्प जो आंकड़ों के आधार पर क्रमबद्ध उत्तर (केवल एक के बजाय) प्रदान करता है। मानक यूनिक्स प्रोग्राम यूनिक्स एस. यू. एस. 2008 उपयोगिता योजना 9 आई. बी. एम. आई. क्यूशेल आदेशों को आदेश देता है।