इस पंक्ति में:
tr a A < /etc/hosts | sort -r |pr -d > /etc/hosts
अपेक्षित परिणाम क्या होगा? मुझे पता है कि लोअरकेस 'ए' अपरकेस में बदल जाएगा 'ए' लेकिन आगे क्या है? क्या मूल फ़ाइल को फिर से लिखा जाएगा क्योंकि रीडायरेक्ट उसी फ़ाइल नाम के लिए है?
इस पंक्ति में:
tr a A < /etc/hosts | sort -r |pr -d > /etc/hosts
अपेक्षित परिणाम क्या होगा? मुझे पता है कि लोअरकेस 'ए' अपरकेस में बदल जाएगा 'ए' लेकिन आगे क्या है? क्या मूल फ़ाइल को फिर से लिखा जाएगा क्योंकि रीडायरेक्ट उसी फ़ाइल नाम के लिए है?
जवाबों:
अपेक्षित परिणाम एक रिक्त /etc/hosts
फ़ाइल है।
पुनर्निर्देशन > /etc/hosts
होता है और फ़ाइल ट्रंकेटस से पहले कार्यक्रमों का प्रदर्शन शुरू हो और tr
फ़ाइल से पढ़ने का शुरू होता है।
आउटपुट को लिखने के लिए /etc/hosts
, आप फ़ाइल की एक प्रतिलिपि के साथ काम कर सकते हैं (या अपनी आउटपुट फ़ाइल को बाद में स्थानांतरित कर सकते हैं), या अधिक जानकारी से sponge
कमांड का उपयोग करें , जो मानक इनपुट को भिगो देगा और फ़ाइल में लिख देगा:
tr a A < /etc/hosts | sort -r | pr -d | sponge /etc/hosts
उस मामले में, प्रत्येक "एक" में /etc/hosts
किया जाएगा प्रतिस्थापित 'ए' के साथ, सभी लाइनों की जाएगी रिवर्स में अपने स्थान के अनुसार छाँटे गए , एक रिक्त पंक्ति प्रत्येक पंक्ति के बीच डाला जाएगा , और परिणाम में रखा जाएगा /etc/hosts
।
आप उपयोगी भी पा सकते हैं:
bash: /etc/hosts: Permission denied
त्रुटि मिलनी चाहिए (यह मानते हुए कि आपका शेल बैश है), जब तक आप इसे इस रूप में नहीं चला रहे हैंroot
।/etc/hosts
आम तौर पर केवल जड़ से लिखने योग्य है। Iff आप इसे चला रहे हैंroot
(जो आपको वास्तव में नहीं करना चाहिए), आपको एक खाली मिलेगा/etc/hosts
जैसा कि माइकल होमर ने समझाया है।