ฉันกำลังพยายามคัดลอกไดเรกทอรีขนาดใหญ่จากไดรฟ์หนึ่งไปยังอีกไดรฟ์ ฉันออกจากระบบโดยไม่ตั้งใจก่อนที่จะเสร็จสิ้นดังนั้นประมาณ 80% ของไฟล์ที่คัดลอกมา มีการคัดลอกไฟล์ที่เหลือโดยไม่เริ่มต้นหรือไม่?
ฉันกำลังพยายามคัดลอกไดเรกทอรีขนาดใหญ่จากไดรฟ์หนึ่งไปยังอีกไดรฟ์ ฉันออกจากระบบโดยไม่ตั้งใจก่อนที่จะเสร็จสิ้นดังนั้นประมาณ 80% ของไฟล์ที่คัดลอกมา มีการคัดลอกไฟล์ที่เหลือโดยไม่เริ่มต้นหรือไม่?
คำตอบ:
ฉันจะพยายาม,
rsync -a /from/file /dest/file
คุณสามารถใช้ตัวเลือกอื่น ๆ เช่น,--append
-P (--partial --progress)
ดูman rsyncสำหรับข้อมูลเพิ่มเติม
หรือถ้าคุณใช้cp
งานcp -u
อยู่ให้ใช้
จากman cp
:
-u, --update
copy only when the SOURCE file is newer than the destination file or when the destination file is missing.
cp -u
อาจไม่สนใจเนื่องจากจะตรวจสอบเฉพาะการประทับเวลาไม่ใช่ขนาด ... ดังนั้นคุณต้องtouch
ใช้ไฟล์ต้นฉบับก่อนหากคุณต้องใช้มัน . (หรือใช้เพียงrsync
)
สำหรับการถ่ายโอนไฟล์บางส่วนcp
อาจไม่ใช่สิ่งที่คุณต้องการ
ฉันแนะนำให้ใช้rsync
แทน แม้ว่าการถ่ายโอนล้มเหลวคุณสามารถเรียกใช้คำสั่งอีกครั้งในภายหลังและมันจะคัดลอกเฉพาะไฟล์ที่หายไป
ตัวอย่าง:
$ rsync -aPEmivvz from/ to/
(จะคัดลอกfrom/
ไปยังto/
ไดเรกทอรี)
เนื่องจากrsync
การซิงค์และการตรวจสอบหลังจากการถ่ายโอนแต่ละครั้งทำให้การคัดลอกไฟล์อย่างถูกต้องเป็นเรื่องเล็กน้อย
ชุด swich -aPEmivvz
เป็นตัวเลือกgo-toมาตรฐานของฉันทุกครั้งที่คัดลอกไฟล์ผ่านเครือข่ายหรือไดรฟ์ภายนอกรวมถึงอุปกรณ์ปลั๊กอินเช่นการ์ด SD และอื่น ๆ
นี่เป็นสวิตช์ที่ฉันใช้เกือบทุกครั้ง:
-a
: "เก็บถาวร", รวมถึง-rlptgo
(เรียกซ้ำ, symlink เป็น symlink, การอนุญาต, เวลา, กลุ่ม, เจ้าของ)
-P
: "ความคืบหน้าบางส่วน" แสดงแถบความคืบหน้าที่ดีสำหรับแต่ละไฟล์
-E
: "ความสามารถในการปฏิบัติงาน" จะรักษาความสามารถในการปฏิบัติการได้
-m
: "noempty" ลูกพรุนที่ว่างเปล่า
-i
: "สรุป" พิมพ์สรุปการเปลี่ยนแปลงสำหรับการอัพเดททั้งหมด
-vv
: "verbose เพิ่มเติม"
-z
: "การบีบอัด"
สิ่งที่คุณอาจต้องการมากกว่าในกรณีนี้คือcp
rsync
เพียงแค่คัดลอกโครงสร้างไดเรกทอรีหนึ่งซ้ำไปยังตำแหน่งใหม่:
rsync -av /path/to/source /path/to/destination
คุณไม่ควรใช้cp
สิ่งนี้ ตามที่คนอื่นได้กล่าวว่าไม่ใช่เครื่องมือที่เหมาะสมสำหรับงาน เครื่องมือที่ถูกต้องจะขึ้นอยู่กับเป้าหมายของคุณ
หากคุณต้องการสำเนาตรง:
rsync /source /destination
ด้วยธงบางระดับ ดูคำตอบอื่น ๆ สำหรับตัวอย่างที่ดีจริงๆ
หากคุณต้องการอัพเดตแบบสองทิศทาง
unison
เป็นวิธีที่จะไป Rsync ทำได้ดีในการแก้ไขข้อขัดแย้งด้วยซิงค์แบบสองทิศทาง ลบพิเศษ คุณต้องการให้สำเนาสองทิศทางสว่างขึ้นunison
git
หากคุณต้องการสำรองข้อมูลและไฟล์ที่มีข้อความตามแล้วคุณสามารถลองใช้ สามารถเรียกใช้ Git ในระบบได้โดยไม่จำเป็นต้องมี "เซิร์ฟเวอร์" ในความเป็นจริงเซิร์ฟเวอร์ git เป็นวิธีการแชร์ไฟล์เท่านั้น คุณสามารถมี repo คอมไพล์ในไดรฟ์สำรองและ "ดัน" ไป อีกครั้งนี้ใช้งานได้จริงถ้าไฟล์เป็นข้อความและคุณพยายามสำรองข้อมูลทางเดียว
อีกครั้งหากคุณต้องการสำรองข้อมูล (ไม่ใช่เพียงครั้งเดียว) ให้ดูตัวเลือก deja-dupe, BackIntime หรือที่คล้ายกัน พวกเขาใช้ภาพรวมของข้อมูลในเวลา พวกเขาทั้งหมดทำงาน rsync ภายใต้ประทุน
คุณยังสามารถคัดลอกไฟล์ทั้งหมดอีกครั้งขอคำยืนยันสำหรับการเขียนทับแต่ละครั้งจากนั้นตอบคำถามโดยอัตโนมัติ:
yes n | cp -i /source /dest
(คุณอาจใช้ตัวเลือกเพิ่มเติมเช่น-r
ดังนั้นเพียงเพิ่มเช่นcp -pri /source /dest
... )
ใช้คำสั่งrsync
ด้วยตัวเลือกต่อไปนี้:
rsync --progress --partial --append /source_file /destination_file