क्या आपने कभी एक संपादक में फ़ाइल खोलने का प्रयास किया है ताकि यह पता चल सके कि इसमें अपठनीय बाइनरी सामग्री है?
लिनक्स "तार" कमांड किसी भी फ़ाइल में मानव-पठनीय पात्रों को देखना संभव बनाता है।
"स्ट्रिंग्स" कमांड का उपयोग करने का मुख्य उद्देश्य यह है कि आप किस प्रकार की फाइल को देख रहे हैं, यह जानने के लिए है कि आप इसे टेक्स्ट निकालने के लिए भी उपयोग कर सकते हैं। उदाहरण के लिए, यदि आपके पास एक स्वामित्व प्रोग्राम से एक फ़ाइल है जो अजीब बाइनरी प्रारूप में फ़ाइलों को सहेजती है तो आप फ़ाइल में रखे गए पाठ को निकालने के लिए "स्ट्रिंग्स" का उपयोग कर सकते हैं।
स्ट्रिंग कमांड का उदाहरण उपयोग
स्ट्रिंग कमांड की शक्ति का प्रदर्शन करने का एक शानदार तरीका लिबर ऑफिस राइटर का उपयोग करके एक दस्तावेज़ बनाना है।
बस लिबर ऑफिस राइटर खोलें और कुछ टेक्स्ट दर्ज करें और फिर इसे मानक ओडीटी प्रारूप में सहेजें।
अब एक टर्मिनल विंडो खोलें (एक ही समय में CTRL, ALT और T दबाएं) और फिर फ़ाइल को प्रदर्शित करने के लिए बिल्ली कमांड का उपयोग निम्नानुसार करें:
बिल्ली yourfilename.odt | अधिक
(आपके द्वारा बनाई गई फ़ाइल के नाम से yourfilename.odt को बदलें)
आप जो देखेंगे वह अवैध पाठ की पूरी दीवार है।
फ़ाइल के माध्यम से स्क्रॉल करने के लिए स्पेसबार दबाएं। पूरी तरह से फ़ाइल में आप अपने द्वारा दर्ज किए गए कुछ पाठ देखेंगे।
स्ट्रिंग कमांड का उपयोग केवल उन हिस्सों को प्रदर्शित करने के लिए किया जा सकता है जो मानव पठनीय हैं।
अपने सबसे सरल रूप में आप निम्न आदेश चला सकते हैं:
तारों yourfilename.odt | अधिक
पहले की तरह, पाठ की एक दीवार दिखाई देगी, लेकिन केवल एक पाठ जिसे आप मानव के रूप में पढ़ सकते हैं। यदि आप भाग्यशाली हैं तो आप अपना टेक्स्ट देख पाएंगे।
आप यह देखने में सक्षम होंगे कि यह महत्वपूर्ण है, हालांकि, पहली पंक्ति पर है:
mimetypeapplication / vnd.oasis.opendocument.text
हम जानते हैं कि फाइल प्रकार एक लिबर ऑफिस राइटर ओडीटी फ़ाइल है 2 कारणों से:
- हमने फाइल बनाई है
- एक्सटेंशन है। ओडीटी
कल्पना कीजिए कि आपने फ़ाइल नहीं बनाई है या आपको फ़ाइल को पुनर्प्राप्त डिस्क पर मिला है और फ़ाइल में कोई एक्सटेंशन नहीं था।
विंडोज रिकवरी अक्सर 0001, 0002, 0003 आदि जैसे नामों वाली फाइलों को पुनर्प्राप्त करेगी। तथ्य यह है कि फाइलें पुनर्प्राप्त की गईं लेकिन यह काम करने की कोशिश कर रही है कि उन फाइलों के प्रकार किस तरह दुःस्वप्न थे।
तारों का उपयोग करके आपके पास फ़ाइल प्रकार को काम करने का एक लड़ने का मौका है। यह जानकर कि एक फ़ाइल opendocument.text फ़ाइल है, इसका मतलब है कि आप इसे ओडीटी एक्सटेंशन से सहेज सकते हैं और इसे लिबर ऑफिस लेखक में खोल सकते हैं।
यदि आप एक ओडीटी फ़ाइल से अनजान थे तो मूल रूप से एक संपीड़ित फ़ाइल है। अगर आप yourfilename.zt पर yourfilename.odt का नाम बदलते हैं तो आप इसे एक संग्रह उपकरण में खोल सकते हैं और फ़ाइल को अनजिप भी कर सकते हैं।
वैकल्पिक व्यवहार
डिफ़ॉल्ट रूप से स्ट्रिंग कमांड फ़ाइल के भीतर सभी तारों को लौटाता है लेकिन आप व्यवहार को स्विच कर सकते हैं ताकि यह फ़ाइल में प्रारंभिक, लोड किए गए डेटा अनुभागों से स्ट्रिंग लौटा सके।
इसका वास्तव में क्या मतलब है? कोई नहीं जानता।
यह समझने में समझदारी होती है कि आप फ़ाइल प्रकार को खोजने या फ़ाइल में विशिष्ट टेक्स्ट देखने के लिए स्ट्रिंग का उपयोग कर रहे हैं।
यदि डिफ़ॉल्ट व्यवहार का उपयोग करते हुए स्ट्रिंग कमांड चलाते समय आपको वह आउटपुट नहीं मिलता है जिसके लिए आप उम्मीद कर रहे थे तो यह देखने के लिए निम्न आदेशों में से किसी एक को चलाने का प्रयास करें कि यह कोई फर्क पड़ता है या नहीं:
मैनुअल पेज बताता है कि उपरोक्त आदेश तारों से लौटे कचरे की मात्रा को कम करने में मदद कर सकता है। "स्ट्रिंग्स" कमांड को रिवर्स में काम करने के लिए सेट किया जा सकता है ताकि माइनस डी स्विच डिफ़ॉल्ट व्यवहार हो। यदि यह आपके सिस्टम पर है तो आप निम्न आदेश का उपयोग कर सभी डेटा वापस कर सकते हैं: पाठ के प्रत्येक पंक्ति के साथ फ़ाइल का नाम प्रदर्शित करने के लिए आप आउटपुट के भीतर टेक्स्ट प्राप्त कर सकते हैं। ऐसा करने के लिए निम्न आदेशों में से एक चलाएं: आउटपुट अब इस तरह कुछ दिखेंगे: आउटपुट के हिस्से के रूप में आप उस फ़ाइल को ऑफ़सेट भी प्रदर्शित कर सकते हैं जहां फ़ाइल में वह टेक्स्ट दिखाई देता है। ऐसा करने के लिए निम्न आदेश चलाएं: आउटपुट इस तरह कुछ दिखाई देगा: ऑफसेट वास्तव में ऑक्टल ऑफसेट है हालांकि इस पर निर्भर करता है कि आपके सिस्टम के लिए तारों को कैसे संकलित किया गया है, यह आसानी से हेक्स या दशमलव ऑफसेट भी हो सकता है। ऑफसेट प्राप्त करने का एक और सटीक तरीका निम्न आदेशों का उपयोग करना है: माइनस टी का अर्थ है ऑफ़सेट और चरित्र जो ऑफ़सेट प्रकार निर्धारित करता है, लौटाता है। (यानी डी = दशमलव, ओ = ऑक्टल, एच = हेक्स)। डिफ़ॉल्ट रूप से स्ट्रिंग कमांड प्रत्येक नई स्ट्रिंग को एक नई लाइन पर प्रिंट करता है लेकिन आप अपनी पसंद का डिलीमीटर सेट कर सकते हैं। उदाहरण के लिए एक पाइप प्रतीक ("|") का उपयोग करने के लिए delimiter निम्न आदेश चलाता है: डिफ़ॉल्ट रूप से स्ट्रिंग कमांड पंक्ति में 4 प्रिंट करने योग्य वर्णों की एक स्ट्रिंग की तलाश करता है। आप डिफ़ॉल्ट समायोजित कर सकते हैं ताकि यह केवल 8 प्रिंट करने योग्य वर्णों या 12 प्रिंट करने योग्य वर्णों के साथ एक स्ट्रिंग लौटा सके। इस सीमा को समायोजित करके आप आउटपुट को सर्वोत्तम संभव परिणाम प्राप्त करने के लिए तैयार कर सकते हैं। एक स्ट्रिंग की तलाश करके जो बहुत लंबा है, आप उपयोगी पाठ को छोड़ने का जोखिम उठाते हैं लेकिन इसे बहुत छोटा बनाकर आप अधिक जंक लौट सकते हैं। स्ट्रिंग सीमा समायोजित करने के लिए निम्न आदेश चलाएं: उपर्युक्त उदाहरण में मैंने सीमा को 8 में बदल दिया है।आप अपनी पसंद की संख्या के साथ 8 को प्रतिस्थापित कर सकते हैं। आप एक ही काम करने के लिए निम्न आदेश का भी उपयोग कर सकते हैं: डिफ़ॉल्ट रूप से, स्ट्रिंग कमांड में व्हाइटस्पेस जैसे टैब या स्पेस को प्रिंट करने योग्य वर्ण के रूप में शामिल किया जाता है। इसलिए यदि आपके पास एक स्ट्रिंग है जो "बिल्ली को चटनी पर बैठे" के रूप में पढ़ती है तो स्ट्रिंग कमांड पूरे टेक्स्ट को वापस कर देगा। नई लाइन वर्ण और कैरिज रिटर्न डिफ़ॉल्ट रूप से प्रिंट करने योग्य वर्ण नहीं माना जाता है। नए लाइन वर्णों और कैरिज रिटर्न को पहचानने के लिए तारों को प्राप्त करने के लिए एक प्रिंट करने योग्य चरित्र के रूप में निम्नलिखित तरीके से चलते हैं: तारों के उपयोग के लिए 5 एन्कोडिंग विकल्प उपलब्ध हैं: डिफ़ॉल्ट 7 बिट बाइट है। एन्कोडिंग को बदलने के लिए निम्न आदेश चलाएं: उपर्युक्त आदेश में, मैंने डिफ़ॉल्ट "एस" निर्दिष्ट किया है जिसका अर्थ है 7 बिट बाइट। बस अपनी पसंद के एन्कोडिंग अक्षर के साथ "एस" को प्रतिस्थापित करें। आप तारों के व्यवहार को बदल सकते हैं ताकि यह आपके सिस्टम के लिए प्रदान की गई किसी अन्य बाइनरी फ़ाइल डिस्क्रिप्टर लाइब्रेरी का उपयोग कर सके। यह स्विच विशेषज्ञों के लिए एक है। यदि आपके पास उपयोग करने के लिए एक और लाइब्रेरी है तो आप निम्न स्ट्रिंग कमांड चलाकर ऐसा कर सकते हैं: यदि आप प्रत्येक बार एक ही विकल्प का उपयोग करने जा रहे हैं तो आप प्रत्येक बार कमांड चलाने के दौरान सभी स्विच निर्दिष्ट नहीं करना चाहते हैं क्योंकि इसमें समय लगता है। आप क्या कर सकते हैं नैनो का उपयोग करके एक टेक्स्ट फ़ाइल बनाएं और उस फ़ाइल के भीतर विकल्पों को निर्दिष्ट करें। टर्मिनल के भीतर इसे आज़माकर निम्न आदेश चलाएं: फ़ाइल में निम्न पाठ दर्ज करें: CTRL और O दबाकर फ़ाइल को सहेजें और CTRL और X दबाकर बाहर निकलें। इन विकल्पों के साथ स्ट्रिंग कमांड चलाने के लिए निम्न आदेश चलाएं: विकल्प फ़ाइल स्ट्रिंग्सपॉप्स से पढ़े जाएंगे और आपको प्रत्येक स्ट्रिंग, ऑफसेट और "|" से पहले फ़ाइल नाम देखना चाहिए एक विभाजक के रूप में। यदि आप तारों के बारे में अधिक पढ़ना चाहते हैं तो आप सहायता प्राप्त करने के लिए निम्न आदेश चला सकते हैं। वैकल्पिक रूप से आप मैन्युअल पृष्ठ भी पढ़ सकते हैं: स्ट्रिंग्स का संस्करण ढूंढने के लिए आप निम्न आदेशों में से एक चला रहे हैं:तार-डी yourfilenameतार - डेटा yourfilenameतार - आपका yourfilename स्वरूपण आउटपुट
तार -फफिल्फ़नामतार - प्रिंट-फ़ाइल-नाम yourfilenameyourfilename: पाठ का एक टुकड़ाyourfilename: पाठ का एक और टुकड़ातार-आपका yourfilename16573 आपका17024 पाठतारों-डी डी yourfilenameस्ट्रिंग्स-ओ ओफिलनामतारों-एच एच yourfilenameतार-एस "|" yourfilename स्ट्रिंग सीमा समायोजित करें
स्ट्रिंग्स- एन 8 yourfilenameतार --bytes = 8 yourfilename व्हाइटस्पेस शामिल करें
तार-आपका yourfilename एन्कोडिंग बदलें
स्ट्रिंग्स - आपका एसफिलनामतार --encoding = s yourfilename बाइनरी फ़ाइल विवरण नाम बदलें
स्ट्रिंग्स -टी बीएफडीनाम एक फ़ाइल से विकल्प पढ़ना
नैनो स्ट्रिंग्सटॉप-f -o -n 3 -s "|"तार @stringsopts yourfilename सहायता ले रहा है
तार --helpआदमी तार स्ट्रिंग्स का कौन सा संस्करण आप चल रहे हैं इसका पता लगाएं
तार -vतार-वीतार - विचलन




