ฉันกำลังพยายามคัดลอกไดเรกทอรีขนาดใหญ่จากไดรฟ์หนึ่งไปยังอีกไดรฟ์ ฉันออกจากระบบโดยไม่ตั้งใจก่อนที่จะเสร็จสิ้นดังนั้นประมาณ 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: "การบีบอัด"
สิ่งที่คุณอาจต้องการมากกว่าในกรณีนี้คือcprsync
เพียงแค่คัดลอกโครงสร้างไดเรกทอรีหนึ่งซ้ำไปยังตำแหน่งใหม่:
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