จากกระทู้ การ copy ไฟล์ครั้งละเยอะ ๆ (100,000 ไฟล์) และได้คุณ homoglobin มาโพสแนะนำเพิ่มเติมเอาไว้บน freemac.net เกี่ยวกับการใช้งานคำสั่ง rsync ผ่าน terminal เพื่อทำการ copy ไฟล์
ผมเลยลองทำตามดู และคิดว่าน่าจะดีถ้าเขียนเป็น how-to เก็บเอาไว้ สำหรับผู้ใช้งานทั่วไป ที่อาจจะไม่คุ้นกับการใช้งานคำสั่งผ่าน terminal ให้เห็นภาพทำตามได้ง่าย ๆ โดยเน้นบนพื้นฐานของผู้ใช้งานทั่วไปแบบบ้าน ๆ เป็นหลักครับ
note : จากการทดสอบสำหรับย้ายไฟล์ 38,000 กว่าไฟล์จาก hd ภายในเครื่องของผมเองไปยัง external hd ที่ต่อผ่าน firewire400 ใช้เวลาประมาณ 4 นาทีตั้งแต่เริ่มกระบวนการจนเสร็จสิ้นครับ ..
วิธีการ copy ไฟล์ผ่านคำสั่ง rsync บน terminal ครับ
ขั้นตอนที่ 1: กำหนดเป้าหมาย และปลายทางที่เราต้องการ
บน finder ให้เปิดเอาไว้ 2 หน้าต่างดังนี้ครับ
ขั้นตอนที่ 2 : เปิด terminal.app ขึ้นมา โดยจะเรียกจากใน applications folder/ utilities หรือผ่าน spotlight แล้วพิมพ์ terminal ก็ได้ เราจะเห็นหน้าต่างเปล่า ๆ ของ terminal แบบนี้ครับ
ขั้นตอนที่ 3 : พิมพ์คำสั่ง rsync ลงใน terminal
คำสั่ง resync มีรูปแบบการใช้งานคร่าว ๆ ประมาณนี้ครับ
rsync -av [path ของ folder ต้นทาง] [path ของ folder ปลายทาง]
** คำสั่ง rsync, -av, folder ต้นทาง และ folder ปลายทาง มีเว้นวรรคคั่นอยู่นะครับ ...
อย่างในกรณีของผม เป็นแบบนี้
rsync -av /apache2/htdocs/folder ต้นทาง /Volumes/MyBook-Mac/folder ปลายทาง
โดยที่ [path ของ folder ต้นทาง] = /apache2/htdocs/folder ต้นทาง
และ [path ของ folder ปลายทาง]= /Volumes/MyBook-Mac/folder ปลายทาง
ทีนี้ สำหรับผู้ใช้ทั่วไป ที่ไม่ทราบว่าจะพิมพ์ path ของ folder ต้นทางกับ path ของ folder ปลายทางอย่างไรดีบน terminal ให้ทำแบบนี้ครับ
จาก finder ที่เราเปิดทิ้งเอาไว้ ให้ลองลาก folder ที่เราต้องการลงในบรรทัดของ terminal ดู เราจะเห็นว่า เค้าจะขึ้น path ของ folder นั้น ๆ ให้ แบบนี้ครับ
ที่เราต้องทำคือ พิมพ์คำสั่งว่า rsync -av ทิ้งเอาไว้บน terminal แล้วลาก folder ต้นทาง และ ปลายทาง จากบน finder มาลงใน terminal เพื่อให้คำสั่งสมบูรณ์
เมื่อได้ path ต้นทาง กับปลายทางลงในคำสั่ง rsync โดยสมบูรณ์แล้ว ให้กด enter ถ้าไม่มีอะไรผิดพลาด เราจะเห็นว่าเขาเริ่มทำงานย้ายไฟล์ให้เราครับ
โดยไฟล์ที่มีปัญหา จะถูกแสดงขึ้นมาก่อนพร้อมด้วยระบุว่าทำไมถึงย้ายไม่ได้ให้เราทราบด้วย หลังจากนั้นก็จะเริ่มการย้ายไฟล์ตามปรกติทั่วไป เราจะเห็นหน้าต่าง terminal แสดงไฟล์ที่ถูกย้ายไล่ลงมาเรื่อย ๆ และเมื่อเสร็จกระบวนการแล้ว เขาจะแจ้งเรามาแบบนี้ครับ
หมดแล้วครับ ลองนำไปใช้งานกันดู หวังว่าจะเป็นประโยชน์บ้างไม่มากก็น้อยนะครับ =)