यह बेकार नहीं है - यह सादे >
पुनर्निर्देशक ऑपरेटर का एक विशेष रूप है (और, शायद भ्रमित, पाइप के साथ कुछ भी नहीं करना है)। bash
और अधिकांश अन्य आधुनिक गोले के पास एक विकल्प है noclobber
, जो पुनर्निर्देशन को पहले से मौजूद फ़ाइल को ओवरराइट करने या नष्ट करने से रोकता है। उदाहरण के लिए, यदि noclobber
यह सत्य है, और फ़ाइल /tmp/output.txt
पहले से मौजूद है, तो यह विफल होना चाहिए:
$ some-command > /tmp/output.txt
हालांकि, आप पुनर्निर्देशन ऑपरेटर के noclobber
साथ सेटिंग को स्पष्ट रूप से ओवरराइड कर सकते हैं >|
- रीडायरेक्शन काम करेगा, भले ही noclobber
वह सेट हो।
आप यह पता कर सकते हैं कि क्या noclobber
आपके वर्तमान परिवेश में सेट है set -o
।
ऐतिहासिक नोट के लिए, "नोकलोबार" विकल्प और इसके बाईपास फीचर्स दोनों csh
(70 के दशक के अंत से ) आते हैं। ksh
इसे (80 के दशक की शुरुआत में) कॉपी किया >|
गया, लेकिन इसके बजाय इसका उपयोग किया गया >!
। POSIX ने ksh
सिंटैक्स निर्दिष्ट किया (इसलिए सभी POSIX गोले जिसमें बैश भी शामिल है, कुछ सिस्टम पर sh के रूप में उपयोग किए जाने वाले नए राख डेरिवेटिव)। Zsh दोनों वाक्यविन्यास का समर्थन करता है। मुझे नहीं लगता कि इसे किसी बॉर्न शैल संस्करण में जोड़ा गया था, लेकिन मैं गलत हो सकता हूं।
>|
: stackoverflow.com/questions/818255/in-the-bash-shell-what-is-21/…