लिनक्स में एक फ़ाइल में कमांड के आउटपुट को कैसे सेव करें
लिनक्स सिस्टम पर कमांड लाइन आउटपुट को फाइलों को सहेजने के कुछ तरीके हैं। प्रत्येक व्यक्ति अलग-अलग काम करता है और विभिन्न चीजों को बचाता है।
ये आदेश सभी लिनक्स वितरण में उपयोगी हैं और मैक और बीएसडी पर भी इसका इस्तेमाल किया जा सकता है। केवल एक चीज जो आपको सोचनी है वह यह है कि नौकरी पाने के लिए कौन सा आदेश सबसे अच्छा है।
यूनिक्स और पाइप्स
आदेशों में गोता लगाने से पहले, आपको थोड़ा इतिहास पता होना चाहिए। इनमें से कोई भी लिनक्स के लिए विशिष्ट नहीं है। यह वास्तव में बेल लैब्स द्वारा विकसित पुराने यूनिक्स ऑपरेटिंग सिस्टम से आता है। लिनक्स, मैक और बीएसडी सभी यूनिक्स जैसी ऑपरेटिंग सिस्टम हैं जो यूनिक्स में अपने परिवार के पेड़ का पता लगा सकते हैं।
यूनिक्स के पीछे मूल विचारों में से एक यह था कि आप छोटे और अधिक जटिल चीजों को करने के लिए एक साथ स्ट्रिंग कर सकते हैं। यही कारण है कि आप उन्हें एक साथ काम करने के लिए लिनक्स कमांड को जोड़ सकते हैं।
लिनक्स (और यूनिक्स) कमांड को एक साथ खींचने और उन्हें एक साथ काम करने के कुछ तरीके हैं। सबसे आम आप का सामना करना होगा |
चरित्र। एकल पीआईपी, जिसे इसे कहा जाता है, एक कमांड के आउटपुट को दूसरे में भेजता है।
आप |&
ऑपरेटर में भी आएंगे। यह अगले कमांड में आउटपुट और त्रुटियों दोनों को गुजरता है।
इस मार्गदर्शिका में प्रत्येक विधि अनिवार्य रूप से यूनिक्स कमांड के बारे में जानकारी पास करने का एक तरीका है। आदेशों के बीच डेटा पाइप करने के बजाय, वे डेटा को आउटपुट पर निर्देशित करते हैं। इस मामले में, वह आउटपुट एक फ़ाइल है।
सेट अप
आगे जाने से पहले, परीक्षण को आसान बनाने के लिए सेट अप करने के लिए कुछ चीजें हैं। अपने रूट उपयोगकर्ता के रूप में, अपने नियमित उपयोगकर्ता की होम निर्देशिका में कुछ फ़ोल्डर्स बनाएं। उन्हें पढ़ने योग्य बनाने के लिए अपनी अनुमतियां बदलें।
सुडो mkdir Fail1 सुडो mkdir Fail2 सुडो chmod 000 विफल 1 सुडो chmod 000 विफल 2
आप परीक्षण करने के लिए du
कमांड का उपयोग करेंगे, और यह उन फ़ाइलों को मुठभेड़ करते समय त्रुटियों को उठाएगा।
बिना त्रुटियों के आउटपुट को रीडायरेक्ट करना
टर्मिनल से फ़ाइल में आउटपुट को रीडायरेक्ट करने का सबसे आम और मूल तरीका >
और >>
ऑपरेटरों का उपयोग करना है। वे केवल आउटपुट को निर्दिष्ट टेक्स्ट फ़ाइल में निर्देशित करते हैं। वे त्रुटियों को पुनर्निर्देशित नहीं करते हैं। वे अभी भी टर्मिनल में दिखाई देंगे।
>
ऑपरेटर आउटपुट को एक फ़ाइल में रीडायरेक्ट करता है और उस फ़ाइल की सामग्री को ओवरराइट करता है।
du -h ./*> फ़ोल्डर-आकार.txt
इसके विपरीत, >>
ऑपरेटर उसी तरह काम करता है लेकिन आउटपुट को फ़ाइल के अंत में जोड़ता है।
du -h ./* >> फ़ोल्डर-आकार.txt
केवल त्रुटियों को सहेजा जा रहा है
ये अगले दो ऑपरेटर पहले के बिल्कुल विपरीत हैं। वे केवल त्रुटियों को बचाते हैं, जबकि वे टर्मिनल में आउटपुट प्रदर्शित करते हैं।
2>
ऑपरेटर का उपयोग एक कमांड से त्रुटियों को लॉग फ़ाइल में भेजता है, इसे ओवरराइट कर रहा है। नियमित आउटपुट अभी भी टर्मिनल में प्रदर्शित होगा।
du -h ./* 2> error.log
ओवरराइटिंग के बिना एक ही परिणाम प्राप्त करने के लिए, 2>>
उपयोग करें।
du -h ./* 2 >> error.log
सब कुछ बचाओ, कुछ भी नहीं दिखाओ
यदि आप सब कुछ लॉग इन करने में रुचि रखते हैं, तो ऑपरेटर के अगले सेट में आप शामिल हैं। वे टर्मिनल में कुछ भी दिखाए बिना सभी आउटपुट को फ़ाइलों पर रीडायरेक्ट करते हैं।
&>
ऑपरेटर आउटपुट और त्रुटियों को एक फ़ाइल में रीडायरेक्ट करता है और इसे ओवरराइट करता है।
du -h ./* और> disk_use.log
दूसरों की तरह, यदि आप ओवरराइट नहीं करना चाहते हैं, तो उसके लिए एक साथ ऑपरेटर है।
du -h ./* और >> disk_use.log
सबकुछ दिखाएं, आउटपुट सहेजें
आप टर्मिनल में सब कुछ भी प्रदर्शित कर सकते हैं और केवल आउटपुट लॉग कर सकते हैं। आप टीई कमांड पर अपने कमांड को पाइप करके इसे प्राप्त कर सकते हैं।
tee
नलसाजी में एक टी splitter की तरह काम करता है। यह प्रवाह को दो दिशाओं में निर्देशित करता है। चूंकि |
ऑपरेटर केवल आउटपुट पास करता है, परिणामी फ़ाइल में केवल आउटपुट होता है और त्रुटियां नहीं होती हैं।
du -h ./* | tee output.txt
डिफ़ॉल्ट रूप से, tee
ओवरराइट्स। मौजूदा फ़ाइल को संरक्षित करने के लिए, -a
ध्वज जोड़ें।
du -h ./* | tee -a output.txt
इसे दिखाएं और सहेजें
अंत में, आप सबकुछ प्रदर्शित करने और इसे लॉग करने के लिए tee
कमांड में |&
ऑपरेटर के साथ रीडायरेक्ट कर सकते हैं।
du -h ./* | और tee output.txt
ओवरराइटिंग से बचने के लिए, tee
को ध्वज जोड़ें।
du -h ./* | और tee -a output.txt
लपेटें
स्पष्ट रूप से, जब फ़ाइल को लिनक्स टर्मिनल कमांड के आउटपुट को पुनर्निर्देशित करने और सहेजने की बात आती है तो विकल्पों में से एक टन होते हैं। उनमें से कुछ दूसरों की तुलना में अधिक उपयोगी हैं, लेकिन अधिकांश यूनिक्स तरीके से जानकारी के प्रवाह को नियंत्रित करने के लिए सभी को स्क्रिप्ट की एक विस्तृत श्रृंखला में नियोजित किया जा सकता है।