ฉันมีรูปภาพนับล้านบนเซิร์ฟเวอร์คลาวด์ Ubuntu ของฉัน เมื่อฉันย้ายโฟลเดอร์ทั้งหมดที่มีmv
คำสั่ง12 ล้านภาพโดยใช้คำสั่งมันจะเกิดขึ้นเกือบจะทันที อย่างไรก็ตามเมื่อฉันmv
มีเพียงภาพ (ไม่ใช่โฟลเดอร์) ก็ใช้เวลาพอสมควร มีวิธีในการย้ายภาพทั้งหมดอย่างรวดเร็วเท่ากับโฟลเดอร์หรือไม่?
นี่คือสิ่งที่เกิดขึ้น:
โฟลเดอร์ src มีภาพ 12 ล้านภาพและฉันย้ายมันไปยังโฟลเดอร์ dst โดยใช้
$ mv src ../dst
เกิดขึ้นทันที
ภายในโฟลเดอร์ src ฉันทำสิ่งนี้เพื่อย้าย:
find -maxdepth 1 -name '*.jpg' -exec mv -t ../../dst/ {} +
ใช้เวลาพอสมควร
มีวิธีเร่งกระบวนการที่สองหรือไม่?
dst
อยู่ในพาร์ติชันในขณะที่../../dst
อยู่ในอีก
{}
ข้อโต้แย้งใด ๆที่ชื่อไฟล์จะถูกขยาย
find
มันไม่ได้เป็นที่ถูกต้องของการภาวนา find ... -exec mv -t ../../dst/ {} \;
จะเรียกmv
หนึ่งครั้งต่อไฟล์; find ... -exec mv -t ../../dest {} +
จะได้เร็วขึ้นมาก, การคัดลอกไฟล์จำนวนมากต่อการโทรที่เป็นไปได้ แต่ก็ยังไม่เป็นอย่างที่ย้ายไดเรกทอรีตัวเองเป็นที่อธิบายไว้โดย dadexix86