2011-11-12 16 views
10

शब्द file शब्द file कमांड को संदर्भित करता है, न कि वास्तविक फाइलें। मैं यह निर्धारित करना चाहता हूं कि फ़ाइल एक है, उदाहरण के लिए, वीडियो फ़ाइल (.mpg, .mkv, .avi)। file छवि फ़ाइलों के लिए image लौटने पर वीडियो फ़ाइलों के लिए video और ऑडियो फ़ाइलों के लिए audio (और application/x-empty टेक्स्ट के किसी कारण के लिए) पर बहुत अच्छा है। मेरा सवाल यह है कि यह पहचानने के लिए कितना विश्वसनीय है। तो मैंने किया था एक सरलटाइप (यानी छवि, ऑडियो, या वीडियो) निर्धारित करने के लिए लिनक्स 'फ़ाइल' कमांड का उपयोग

file -ib deliverance.avi | grep video 

मुख्य वीडियो फ़ाइलों के सभी के लिए है कि काम here उल्लिखित हैं?

उत्तर

9

file के परिणाम सही से कम हैं, और इसमें दूसरों की तुलना में कुछ प्रकार की फ़ाइलों के साथ और समस्याएं हैं। फ़ाइल मूल रूप से फ़ाइल प्रकारों को समझने के लिए अनुमानित पैटर्न में बाइनरी डेटा के विशेष टुकड़ों की तलाश करता है।

दुर्भाग्यवश, विशेष रूप से, वीडियो फ़ाइल के लिए अक्सर उपयोग की जाने वाली कुछ फ़ाइल प्रकार इस "समस्याग्रस्त" श्रेणी में आती हैं। .mp4 और .mkv जैसे नए कंटेनर प्रारूपों में आमतौर पर कई अलग-अलग एमआईएम प्रकार होते हैं जिन्हें उचित रूप से इस प्रकार के डेटा पर निर्भर किया जाना चाहिए। उदाहरण के लिए, .mp4 सामग्री के आधार पर video/mp4, audio/mp4, या application/mp4 के रूप में ठीक से पहचाना जा सकता है।

अभ्यास में, file अक्सर अनुमान लगाता है जो आम उपयोग के अनुरूप है, और यह आपके लिए पूरी तरह से अच्छा काम कर सकता है। उदाहरण के लिए, जब मैंने Matroska फ़ाइलों को सही ढंग से पहचानने के साथ कुछ सैद्धांतिक कठिनाइयों का उल्लेख किया, तो file मूल रूप से मानता है कि कोई भी Matroska फ़ाइल एक वीडियो है। दूसरी तरफ, ओग कंटेनर का उपयोग ऑडियो और वीडियो के बीच समान रूप से विभाजित होता है, और मेरा मानना ​​है कि file का वर्तमान संस्करण सिर्फ अंतर को विभाजित करता है, और ओग फाइलों को application/ogg के रूप में पहचानता है, जो आपकी किसी भी श्रेणी में नहीं आ जाएगा ।

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

+0

क्या आप इसे और अधिक सटीक बनाने के लिए कुछ सलाह/लिंक प्रदान कर सकते हैं?[PHP फ़ंक्शंस] (http://php.net/manual/en/function.exif-imagetype.php) का उपयोग करके, मेरे सिर के ऊपर से, शायद फ़ाइल एक्सटेंशन की जांच कर रहा है। निश्चित रूप से यूट्यूब जैसी साइटें इसी समस्या से निपटती हैं। धन्यवाद – puk

+0

मेरा मतलब नकारात्मक नहीं है। 'फाइल' शायद उतना ही अच्छा है जितना आप प्राप्त करने जा रहे हैं। यदि आप यह सुनिश्चित करना चाहते हैं कि कुछ एक्सटेंशन एक निश्चित तरीके से खोजे गए हैं (या अभ्यास में हिट की गई समस्या का सामना करने के लिए) आप एक्सटेंशन के खिलाफ भी जांच कर सकते हैं। –

+0

मैंने प्रारंभिक परीक्षण किया था और फ़ाइल बहुत सटीक थी। बेशक 25,000 विभिन्न वीडियो फाइलों का विश्वसनीय नमूना प्राप्त करना आसान नहीं होगा। – puk

1

फ़ाइल "जादू संख्या" फ़ाइल के विरुद्ध फ़ाइल के शीर्षलेख का संदर्भ देकर काम करती है। मुझे यह देखने का सबसे अच्छा तरीका है कि आपकी संदर्भित सूची से फ़ाइल प्रकारों के लिए अपनी स्थानीय जादू संख्या फ़ाइल (संभावित रूप से/usr/share/magic लेकिन विवरण के लिए मैन फ़ाइल देखें) को कितनी मजबूत फ़ाइल जांचनी है।

1

ऐसा लगता है कि इसे अधिकांश वीडियो/ऑडियो/छवि फ़ाइलों के लिए काम करना चाहिए। लेकिन, अगर ऐसा नहीं होता है, वहाँ वास्तव में एक फ़ाइल है कि एक विस्तार के बीच संबंधों में शामिल है और यह प्रकार है:

जानकारी इन फ़ाइलों की पहचान करने संकलित जादू फ़ाइल /usr/share/magic.mgc से पढ़ी जाती है, या/usr/share/magic अगर संकलन फ़ाइल मौजूद नहीं है।

देखें: http://linux.about.com/library/cmd/blcmdl1_file.htm

आशा इस मदद करता है!

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^