2013-07-16 6 views
8

मेरे पास लगभग 5000 छवियों वाली एक निर्देशिका है और मैं प्रत्येक को 100 छवियों के साथ विभाजित/50 फ़ोल्डर्स (जिसे बनाया जाना चाहिए) में ले जाना चाहता हूं।मैं हजारों छवियों के साथ एक फ़ोल्डर को एकाधिक उप-फ़ोल्डर में कैसे विभाजित कर सकता हूं?

क्या टर्मिनल का उपयोग करके ऐसा करने का कोई तरीका है?

मैं ओएस एक्स चला रहा हूं।

उत्तर

25

i=0; for f in *; do d=dir_$(printf %03d $((i/100+1))); mkdir -p $d; mv "$f" $d; let i++; done

+0

पूरी तरह से काम किया! धन्यवाद –

+0

बहुत धन्यवाद। संशोधित और अन्य उद्देश्यों के लिए इस्तेमाल किया। बेहद सुविधाजनक। – technology101010

2

अजीब एक-लाइनर ऐसा कर सकता है। इस awk कमांड पर विचार करें:

find . -name "*.JPG" | awk '!(++cnt%100) {"mkdir sub_" ++d|getline}' 

इसे 5000 छवियों के साथ फ़ोल्डर के अंदर चलाएं। यह उपनाम, उप-नाम ... sub_50 नामों के साथ 50 फ़ोल्डर्स बनाएगा।

इसके अलावा इन नव निर्मित निर्देशिका में फ़ाइलों को स्थानांतरित करने के लिए:

find . -type f | awk '{ 
    a[++cnt] = $0 
} 
cnt==100 { 
    subd = "sub_" ++d; 
    system("mkdir " subd); 
    for (f in a) 
     system("mv " a[f] " " subd); 
    cnt=0 
}' 
+0

ठीक ऊपर संपादित खंड देखें। – anubhava

+0

धन्यवाद लेकिन मुझे त्रुटियां मिल रही हैं: -नाम: अतिरिक्त तर्कों की आवश्यकता है –

+0

हां वह एक टाइपो था, इसे सही किया गया, अभी आज़माएं। – anubhava

संबंधित मुद्दे

 संबंधित मुद्दे