मुझे उन्हें चलाने के बिना कमांड लाइन दिखाने के लिए xargs कैसे मिलता है?


17

लिनक्स कमांड की एक उचित संख्या में एक ड्राई-रन विकल्प है जो आपको दिखाएगा कि वे इसे करने के बिना क्या करने जा रहे हैं। मुझे xargs मैन पेज में ऐसा कुछ भी नहीं दिख रहा है जो ऐसा करता है और इसका अनुकरण करने का कोई स्पष्ट तरीका नहीं है।

(मेरा विशिष्ट उपयोग मामला लंबी पाइपलाइनों के समस्या निवारण का है, हालांकि मुझे यकीन है कि अन्य हैं)

क्या मैं कुछ भूल रहा हूँ?


वास्तव में आप क्या करने की कोशिश कर रहे हैं?
राहुल

जवाबों:


16

echoचलाने के लिए कमांड के सामने रखें ?

$ echo a b c d e | xargs -n2 echo rm
rm a b
rm c d
rm e

5
(यह, निश्चित रूप से केवल एक सरल समाधान है जो तुच्छ मामलों में काम करता है। यदि पैरामीटर रिक्त स्थान या नियंत्रण वर्ण होते हैं तो आउटपुट अस्पष्ट होगा। हमें प्राप्त मापदंडों को स्पष्ट रूप से मुद्रित करने के लिए कुछ समर्पित उपकरण की आवश्यकता होगी।)
ilkkachu

अगर आप सूखने की कोशिश कर रहे हैं तो क्या होगा echo? :)
mbigras

31

आप -pया -tझंडे से लाभान्वित हो सकते हैं ।

xargs -pया xargs --interactiveकमांड को निष्पादित करने के लिए प्रिंट करेगा और फिर कमांड निष्पादित करने से पहले पुष्टि करने के लिए इनपुट (y / n) के लिए संकेत देगा।

% cat list
one
two
three

% ls
list

% cat list | xargs -p -I {} touch {}
touch one ?...y
touch two ?...n
touch three ?...y

% ls
list
one
three

xargs -tया xargs --verboseप्रत्येक कमांड को प्रिंट करेगा, फिर उसे तुरंत निष्पादित करेगा:

% cat list | xargs -t -I {} touch {}
touch one 
touch two 
touch three 

% ls
list
one
three
two

1
दोनों के साथ शानदार जवाब -pऔर -tविकल्प। उत्कृष्ट उदाहरण। धन्यवाद!
जेसीटन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.