Loading...

Linux in Hindi – I/O Redirection

  • Introduction to linux I/O redirection in Hindi
  • Linux error redirection in Hindi

Introduction to Linux I/O Redirection

जब भी linux में आप कोई command execute करते है तो वह standard input stream (keyboard) से input लेती है और standard output stream (monitor/terminal) पर output show करती है।

इसी प्रकार error भी standard output पर ही display की जाती है। लेकिन linux आपको इन default I/O streams को change करने की ability देती है।

जब आप किसी command की input और output streams को change करते है और वह IO redirection कहलाता है।

यह आवश्यक नहीं है की यदि आप input किसी दूसरी stream (file आदि) से ले रहे तो आपको output भी किसी दूसरी stream पर ही show करना होगा। आप चाहे तो सिर्फ input stream या output stream को बदल सकते है।

लेकिन यदि organizational needs की बात की जाय तो ज्यादातर दोनों को ही redirect किया जाता है।

Linux Input Redirection (<)

Linux में input redirection के लिए < (less than) operator का प्रयोग की जाता है। इस symbol के बाद उस file का नाम specify किया जाता है जिसे आप input के रूप में use करना चाहते है।

इस operator के प्रयोग से वह command input specify की गयी file से लेती है। जैसे cat command specifically file को ही input के रूप में read करती है। लेकिन kernel को specifically दर्शाने के लिए आप < operator use कर सकते है।

cat < linuxmanual.txt
linux-input-redirection

यदि आप file को किसी special string तक ही read करना चाहते है या कोई special string encounter होने पर input पूरा करना चाहते है तो इसके लिए <string> operator के बीच उस string को define करते है।

cat <<EOF> linuxmanual.txt

यँहा cat command के बाद पहले < operator लगाया गया है जो ये बताता है की input stream को file पर redirect किया गया है। इसके बाद <EOF> define किया गया है जो input termination के लिए use की जा रहा है।

Linux Output Redirection (>)

Standard output stream को redirect करने के लिए > operator का प्रयोग किया जाता है। जब shell में यह operator execute होता है तो इसके बाद दी गयी file का content साफ़ कर दिया जाता है और उसमे command का ouput store कर दिया जाता है।

जैसे echo command उसके बाद दिए गए text को वापस display करती है। लेकिन आप इस output को file में store करना चाहते है तो इसके लिए इस प्रकार command लिखेंगे।

echo Best Hindi Tutorials > output.txt
linux-output-redirection

यँहा echo command के output को file में store किया गया है।

यदि आप चाहते है की output redirect किये जाने पर output file का content न साफ़ किया जाये तो इसके लिए आप noclobber option को set कर सकते है।

जब आप इसे -o के साथ set करते है तो output file का content overwrite नहीं किया जाता है और जब आप इसे +o के साथ set करते है तो output file का content overwrite कर दिया जाता है।

इस noclobber option को use करने पर आपको file overwrite attempt पर cannot overwrite existing file message show किया जाता है और आपका output lost हो जाता है।

set -o noclobber 
linux-noclobber-option

यदि no-clobber set होने के बाद भी आप किसी file को overwrite करना चाहते है तो इसके लिए >| operator use करते है।

echo Best Hindi Tutorials >| output.txt 
linux-overwriting-noclobber-option

यदि आप no clobber set होने पर file को overwrite ना करके output को append करना चाहते है इसके लिए >> operator को use करते है।

echo Best Hindi Tutorials >> output.txt
linux-noclobber-option-append

Linux Error Redirection (2>)

जब आप different commands को execute करते है कई बार errors show होती है। लेकिन आप इन error messages को दूसरे output stream में redirect कर सकते है।

Errors को redirect करने के लिए 2> operator use किया जाता है। इस operator के बाद आप उस file का नाम या path define करते है जँहा आप error को redirect करना चाहते है।

cat cbc.txt 2> error.txt
linux-error-redirection

यँहा command command को गलत लिखा गया है इससे error generate होती है लेकिन वह error terminal पर show नहीं होती है बल्कि दिए गए path पर redirect कर दी जाती है।

यदि आप output और errors को एक ही file में redirect करना चाहते है तो इसके लिए 2>&1 operator use करते है।