मैं हाल ही में बड़ी संख्या में फाइलों (~ 400,000) की प्रतिलिपि बना रहा हूं और आगे बढ़ रहा हूं। मुझे पता है कि बैश कमांड लाइन पर विस्तारित तर्कों की संख्या पर सीमाएं हैं, इसलिए मैं उत्पादित संख्याओं को सीमित करने के लिए xargs का उपयोग कर रहा हूं।बैश तर्कों की अधिकतम संख्या! = अधिकतम संख्या सीपी तर्क?
जिज्ञासा से बाहर, मैंने सोचा क्या तर्क है कि मैं इस्तेमाल कर सकते हैं की अधिकतम संख्या था, और मैं this post कह रही है कि यह प्रणाली पर निर्भर था, और मैं पता लगाने के लिए इस आदेश को चला सकते हैं कि पाया:
$ getconf ARG_MAX
मेरे आश्चर्य करने के लिए, anwser मैं वापस मिल गया था:
2621440
बस से अधिक 26 लाख। जैसा कि मैंने कहा, फाइलों की संख्या जो मैं जोड़ रहा हूं उससे काफी कम है - लगभग 400k। मुझे निश्चित रूप से xargs
इन फ़ाइलों को स्थानांतरित करने और कॉपी करने की विधि का उपयोग करने की आवश्यकता है, क्योंकि मैंने सामान्य mv * ...
या cp * ...
का उपयोग करने का प्रयास किया और 'तर्क सूची बहुत लंबी' त्रुटि प्राप्त की।
तो, mv
और cp
आदेशों का उपयोग उन तर्कों की संख्या पर अपनी निश्चित सीमा है जो मैं उपयोग कर सकता हूं (मुझे उनके मैन पेजों में कुछ भी नहीं मिला), या क्या मुझे कुछ याद आ रही है?
आपको प्रत्येक फ़ाइल को निर्दिष्ट क्यों करना है? क्या आप केवल उस निर्देशिका को निर्दिष्ट नहीं कर सकते हैं जिसमें वे हैं या ऐसा कुछ? –
@ क्रिस्टोफर मैं सिर्फ एक स्थान से दूसरे स्थान पर एक निर्देशिका की प्रतिलिपि नहीं बना रहा हूं, मैं विशिष्ट फ़ाइलों की प्रतिलिपि बना रहा हूं, फ़ाइलों के बंच का नाम बदल रहा हूं, कुछ फ़ाइलों को एक स्थान से दूसरे स्थान पर ले जा रहा हूं। वास्तव में इन परिचालनों को करने में मुझे कोई समस्या नहीं है। मैं सिर्फ उत्सुक था कि 'सीपी' और' एमवी 'कमांड की विशिष्ट सीमाएं क्या थीं। –