อาจลองใช้วิธีบรรทัดคำสั่งล้วนๆเพื่อถ่ายโอนไฟล์จำนวนมาก ๆ อย่างไม่ต้องสงสัยคุณจะพบกระบวนการนี้ อย่างมากเร็วกว่าการใช้แบบ GUI
มีหลายวิธีที่จะทำให้สิ่งนี้สำเร็จ แต่สิ่งต่อไปนี้ทำงานได้อย่างรวดเร็วปลอดภัยและมีประสิทธิภาพในระบบของฉัน:
find . -maxdepth 1 -type f -print0 | xargs -0 mv -t <destination>
คำอธิบายบางอย่างสำหรับคำสั่งนี้:
- ไดเรกทอรีอินพุตของคุณคือ '.' ตัวอักษรและสำหรับคำสั่งนี้คุณจะต้องอยู่ในไดเรกทอรีนั้น
- ไดเรกทอรีผลลัพธ์ของคุณคือ
<destination>
ในตัวอย่างของฉัน เห็นได้ชัดว่าการปรับเปลี่ยนนี้เพื่อให้เหมาะกับความต้องการของคุณและออกจากวงเล็บ
- ไวยากรณ์นี้อนุญาตให้ใช้ชื่อไฟล์ที่มีช่องว่างเป็นโบนัส :)
การสับเปลี่ยนไม่มีที่สิ้นสุดเป็นไปได้ แต่สิ่งนี้ควรทำงานได้ดีและมีประสิทธิภาพมากกว่า GUI ตัวอย่างการเปลี่ยนแปลงหนึ่งตัวอย่าง: หากคุณต้องการย้ายเฉพาะไฟล์ PDF ที่คุณสามารถเรียกใช้ได้:
find . -iname "*.pdf" -maxdepth 1 -type f -print0 | xargs -0 mv -t <destination>
การใช้xargs
ความเป็นไปได้เปิดมากมายโดยเฉพาะกับการเคลื่อนไหวของไฟล์จำนวนมาก มีความเป็นไปได้มากมาย
ปัญหาที่อาจเกิดขึ้น:
มีข้อผิดพลาดที่อาจเกิดขึ้นอย่างน้อย 2 ข้อที่ต้องไตร่ตรองขอบคุณผู้แสดงความคิดเห็นด้านล่างสำหรับความคิดเหล่านี้
- ไดเรกทอรีปลายทางของคุณอาจเสียหายในตำแหน่งที่ไม่สามารถเข้าถึงได้ในภายหลังพิมพ์ผิด ฯลฯ
mv
จะยังคงย้ายไฟล์ที่นั่น! ระวังที่นี่ ...
- หาก
-t
ตัวเลือก ( --target-directory
) หายไปและโฟลเดอร์ปลายทางเป็นไฟล์จริงคุณจะย้ายไฟล์หนึ่งไฟล์และล้มเหลวในส่วนที่เหลือ mv
มี 2 ความหมาย: การเปลี่ยนชื่อแหล่งที่ปลายทางหรือย้ายแหล่งไดเรกทอรี ระวังอีกครั้ง ...
cp -R SRC/ DEST/
)