การ copy ไฟล์และโฟลเดอร์ด้วย cp และ rsync ใน bash

Linux

การ copy ไฟล์และโฟลเดอร์ด้วย cp และ rsync ใน bash

ไม่รู้ว่าผมคิดไปเองคนเดียวหรือเปล่า ว่าเวลาที่เรา copy file หรืแ folder ผ่าน cli หรือ command line เนี่ย มันช่างเร็วกว่า GUI ซะเหลือเกิน แถมมี option ให้ใช้งานว่าอยาก copy แบบไหนอีกด้วย ซึ่งในบทความนี้ผมจะมาแนะนำการ copy ไฟล์และโฟลเดอร์ด้วย cp และ rsync ใน bash กันนะครับ

มากกว่า 1 ปีที่ผ่านมา

1 min read

Table of Contents

ไม่รู้ว่าผมคิดไปเองคนเดียวหรือเปล่า ว่าเวลาที่เรา copy file หรือ folder ผ่าน cli หรือ command line เนี่ย มันช่างเร็วกว่า GUI ซะเหลือเกิน แถมมี option ให้ใช้งานว่าอยาก copy แบบไหนอีกด้วย ซึ่งในบทความนี้ผมจะมาแนะนำการ copy ไฟล์และโฟลเดอร์ด้วย cp และ rsync ใน bash กันนะครับ

rsync

วิธีที่ดีที่สุดในการ copy ไฟล์ทั้งหมดใน directory เพื่อที่จะยังคงสิทธิ์การเป็นเจ้าของและ timestamps ของไฟล์ และยัง copy ไฟล์ใน subdirectories ด้วย คือ ใช้ rsync command พร้อมกับ -a option

rsync -a /path/to/source/directory/ /path/to/destination/

cp

อีกวิธีหนึ่งที่เราสามารถ copy ไฟล์ทั้งหมดใน directory ได้ คือ ใช้ cp command พร้อมกับ -r option ซึ่งจะ copy ไฟล์ทั้งหมดใน directory และ subdirectories แต่จะไม่ยังคงสิทธิ์การเป็นเจ้าของและ timestamps ของไฟล์

cp -r /path/to/source/directory/ /path/to/destination/

Show progress

เราสามารถใช้ rsync และ cp พร้อมกับ --progress option เพื่อดูความคืบหน้าของการ copy ไฟล์

rsync -a --progress /path/to/source/directory/ /path/to/destination/
cp -rv /path/to/source/directory /path/to/destination/

Tags:

Terminal