สิ่งนี้เป็นเรื่องง่ายด้วย Unix shell นี่คือสิ่งที่คุณสามารถทำได้กับเชลล์ C แฮมิลตันของฉันเอง(รวมถึงรุ่นฟรี ) คุณสามารถทำสิ่งที่คล้ายกันมากกับCygwin bash
mv *\* .
หากไดเรกทอรีของคุณมีขนาดใหญ่มากอาจเป็นไปได้ว่าอาจใช้อักขระตัวแทนในบรรทัดคำสั่งยาวเกินไปสำหรับให้ Windows ส่งผ่านไปยังกระบวนการลูก (การเรียกใช้ Windows CreateProcessจำกัด รายการอาร์กิวเมนต์ไว้ที่อักขระ 32K Unicode) แต่ 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
สิ่งนี้ยังคงอยู่ในไดเรกทอรีว่างเปล่าซึ่งบางทีคุณอาจไม่ต้องการหลังจากที่มันถูกทำให้ว่างเปล่า นั่นอาจเป็นการวนซ้ำครั้งต่อไปถ้ามันสำคัญ