लिनक्स में टी और Xargs का उपयोग करके मानक इनपुट से कमांड कैसे चलाएं


कमांड लाइन का उपयोग करते समय, आप सीधे एक प्रोग्राम के आउटपुट को पास कर सकते हैं (उदाहरण के लिए एक टूल जो कुछ सिस्टम जानकारी या आँकड़े उत्पन्न करता है) दूसरे प्रोग्राम के लिए इनपुट के रूप में (जैसे कि टेक्स्ट-फ़िल्टरिंग या पैटर्न सर्चिंग टूल जैसे grep, sed या awk,) आगे की प्रक्रिया के लिए), एक पाइपलाइन का उपयोग कर।

कमांड लाइन बनाने के लिए पाइपलाइनों के साथ उपयोग की जा सकने वाली सबसे महत्वपूर्ण कमांड लाइन उपयोगिताओं में से दो हैं:

  • xargs – reads streams of data from standard input, then generates and executes command lines.
  • tee – reads from standard input and writes simultaneously to standard output and one or many files. It’s more of a redirection command.

इस सरल लेख में, हम वर्णन करेंगे कि लिनक्स में पाइप , टी और xargs कमांड का उपयोग करके मानक इनपुट से कई कमांड बनाने और निष्पादित करने का तरीका।

पाइप का उपयोग करने के लिए सबसे सरल वाक्यविन्यास, जिसे आप पहले से ही बाहर लिनक्स ट्यूटोरियल में कई कमांड में देख सकते हैं, इस प्रकार है। लेकिन आप कई कमांड के साथ एक लंबी कमांड लाइन बना सकते हैं।

$ command1 args | command2 args 
OR
# command1 args | command2 args | command3 args ...

नीचे कमांड के हेड कमांड को आउटपुट देने के लिए पाइप लाइन का उपयोग करने का एक उदाहरण है।

$ dmesg | head

रन कमांड्स में xargs का उपयोग कैसे करें

इस उदाहरण में, दूसरी कमांड उत्परिवर्ती-आउटपुट को एकल लाइन में xargs का उपयोग करके परिवर्तित करती है।

$ ls -1 *.sh
$ ls -1 *.sh | xargs

किसी सूची में प्रत्येक फ़ाइल में लाइनों/शब्दों/वर्णों की संख्या की गणना करने के लिए, नीचे दिए गए आदेशों का उपयोग करें।

$ ls *.sh | xargs wc -l	    #count number of lines in each file
$ ls *.sh | xargs wc -w	    #count number of words in each file
$ ls *.sh | xargs wc -c	    #count number of characters in each file
$ ls *.sh | xargs wc	    #count lines, words and characters in each file

नीचे दी गई कमांड वर्तमान निर्देशिका में All नामक निर्देशिका को खोजती है और पुन: हटा देती है।

$ find . -name "All" -type d -print0 | xargs  -0 /bin/rm -rf "{}"

विकल्प के साथ खोज कमांड <कोड> -प्रिंट0 एक्शन मानक आउटपुट पर पूर्ण निर्देशिका पथ की छपाई में सक्षम बनाता है, इसके बाद एक अशक्त चरित्र और <कोड> -0 xargs ध्वज फिल्नाम में स्थान के साथ संबंधित है।

आप इन लेखों में अन्य व्यावहारिक xargs कमांड उपयोग के उदाहरण पा सकते हैं:

  1. How to Copy a File to Multiple Directories in Linux
  2. Rename All Files and Directory Names to Lowercase in Linux
  3. 4 Ways to Batch Convert Your PNG to JPG and Vice-Versa
  4. 3 Ways to Delete All Files in a Directory Except One or Few Files with Extensions

लिनक्स में कमांड के साथ टी का उपयोग कैसे करें

यह उदाहरण दिखाता है कि कमांड आउटपुट को मानक आउटपुट में कैसे भेजें और एक फ़ाइल में सहेजें; नीचे दी गई कमांड आपको लिनक्स में उच्चतम मेमोरी और सीपीयू उपयोग द्वारा शीर्ष चल रही प्रक्रियाओं को देखने की अनुमति देती है।

$ ps -eo cmd,pid,ppid,%mem,%cpu --sort=-%mem | head | tee topprocs.txt
$ cat  topprocs.txt

किसी मौजूदा फ़ाइल (ओं) में डेटा संलग्न करने के लिए, -a ध्वज पास करें।

$ ps -eo cmd,pid,ppid,%mem,%cpu --sort=-%mem | head | tee -a topprocs.txt 

आप टी और xargs मैन पेज में अधिक जानकारी पा सकते हैं।

$ man xargs
$ man tee

बस इतना ही! हमारे विशेष लेख को देखना न भूलें: ए - जेड लिनक्स कमांड्स - उदाहरणों के साथ अवलोकन।

इस लेख में, हमने वर्णन किया कि पाइपलाइनों का उपयोग करके कमांड लाइन कैसे उत्पन्न करें; xargs और tee कमांड। आप नीचे दिए गए फीडबैक फॉर्म के माध्यम से कोई भी प्रश्न पूछ सकते हैं या कोई विचार साझा कर सकते हैं।