Unix kabuğu ile bu tür şeyler kolaydır. İşte kendi Hamilton C kabuğumla neler yapabileceğiniz ( ücretsiz sürüm dahil ) Cygwin bash ile çok benzer bir şey yapabilirsiniz .
mv *\* .
Dizininiz gerçekten büyükse, Windows'un bir alt işleme geçmesi için çok uzun bir komut satırına joker karakter eklenmesi olasıdır. (Windows CreateProcess çağrısı, bağımsız değişken listesini 32K Unicode karakterlerle sınırlar.) Ancak C kabuğunun dahili olarak bir sınırı yoktur, bu nedenle tüm listeyi şu şekilde yineleyebilirsiniz:
foreach i ( *\* )
mv $i .
end
Yukarıdaki @ MarkAllen'in noktasına gelince, bu tür yinelenen adlar olmadığını varsayar. Varsa, listedeki sonraki kopyalar eskilerinin üzerine yazılır. Bu bir endişe ise, dosyaları mvsadece üzerine yazmıyorsanız yineleyebilirsiniz . :tOperatörüdür kuyruk operatörü . -eOperatörüdür dosya testi var .
foreach i ( *\* )
if ( -e $i:t ) then
echo -2 $i not moved because it already exists
else
mv $i .
end
end
Bu hala boş dizinleri bırakıyor, belki de boşaltıldıktan sonra istemiyorsunuz. Önemli olsaydı bu bir sonraki yineleme olabilir.