xargs प्रोग्राम यूनिक्स कमांड लाइन की अधिकतम लंबाई के कारण सीमाओं के लिए खातों को बैचों में तोड़ देता है। यह एक समय में अपने उप-संचार को चलाने से पहले भी अधिक कुशल है, लेकिन इनपुट की लंबी सूची के लिए, यह पर्याप्त समय कमांड चलाएगा कि प्रत्येक "रन" इतना छोटा है कि इससे समस्याएं नहीं आतीं।
इस वजह से, आपको प्रति "बैच" प्रति आउटपुट लाइन देखने की संभावना है कि xargs को चलाने की आवश्यकता है।
क्योंकि आप पा सकते हैं यह उपयोगी/दिलचस्प, आदमी पेज यहां ऑनलाइन पाया जा सकता: http://unixhelp.ed.ac.uk/CGI/man-cgi?xargs
एक अन्य बात यह है कि नोट करने के लिए (और यह अपनी पोस्ट या मेरे गलतफहमी में कोई गलती हो सकता है) है कि आपके पास "* .txt" अनचाहे/उद्धृत है। यानी, आप
find . -name *.txt | xargs du -hc
जहां आप शायद चाहते
find . -name \*.txt | xargs du -hc
अंतर किया जा रहा है कि कमांड लाइन * फ़ाइल नामों की सूची में विस्तार किया जा सकता है कि मेल खाते हैं ... बल्कि * में गुजर से है ढूंढें, जो इसे एक पैटर्न के रूप में उपयोग करेगा।
find . -name "*.txt" -exec ls -lt {} \; | awk -F " " 'BEGIN { sum=0 } { sum+=$5 } END { print sum }'
एचएम, ठीक है। मैंने कोशिश की: खोजें। -नाम * .txt | xargs -n 100000 du -hc लेकिन यह काम नहीं प्रतीत होता है - मुझे अधिक subtotals मिलता है, कम नहीं। खोजने का प्रयास कर रहा है। -नाम * .txt | xargs -L 1000 du -hc 'ठीक से काम नहीं करता है। या तो "xargs: तर्क सूची बहुत लंबी", या यह केवल बहुत कम फ़ाइलों पर चलती है। कोई अन्य विचार? धन्यवाद! एलेक्स –