यूनिक्स शेल के साथ इस तरह की चीज आसान है। यहाँ आप अपने हैमिल्टन सी शेल ( मुक्त संस्करण सहित ) के साथ क्या कर सकते हैं । आप सिग्विन बैश के साथ कुछ ऐसा ही कर सकते हैं ।
mv *\* .
यदि आपकी निर्देशिका वास्तव में बहुत बड़ी है, तो संभव है कि विंडोज में चाइल्ड प्रोसेस से गुजरने के लिए वाइल्डकार्ड बहुत लंबी कमांड लाइन में हो। (Windows CreateProcess कॉल तर्क सूची को 32K यूनिकोड वर्णों तक सीमित करता है।) लेकिन C शेल की आंतरिक रूप से कोई सीमा नहीं है, इसलिए आप पूरी सूची पर इस तरह से पुनरावृति कर सकते हैं:
foreach i ( *\* )
mv $i .
end
@ MarkAllen के ऊपर बिंदु के लिए, इस तरह के मान लेते हैं कि कोई डुप्लिकेट नाम नहीं हैं। यदि वहाँ हैं, तो सूची में बाद की प्रतियां पुराने लोगों को अधिलेखित कर देंगी। यदि यह चिंता का विषय है, तो आप फ़ाइलों पर पुनरावृत्ति कर सकते हैं, mv'उन्हें केवल तभी लिखें जब आप ओवर राइटिंग नहीं कर रहे हों। :tऑपरेटर है पूंछ ऑपरेटर । -eऑपरेटर है फ़ाइल परीक्षण मौजूद है ।
foreach i ( *\* )
if ( -e $i:t ) then
echo -2 $i not moved because it already exists
else
mv $i .
end
end
यह अभी भी खाली निर्देशिकाओं को छोड़ देता है, जो शायद आप खाली होने के बाद नहीं चाहते हैं। अगर यह मामला हुआ तो अगली पुनरावृत्ति हो सकती है।