คำสั่ง rsync ไปที่«ฉลาด»รวมสองโฟลเดอร์คืออะไร?


39

ฉันมีบางโฟลเดอร์ที่ซ้ำกันโดยไม่ได้ตั้งใจและฉันต้องรวมเข้าด้วยกัน สมมติว่าโฟลเดอร์ A มีไฟล์ X และโฟลเดอร์ B มีไฟล์ Y ฉันต้องการคัดลอกไฟล์ X ไปยังโฟลเดอร์ B แต่แน่นอนฉันสามารถเผชิญกับกรณีที่ซับซ้อนมากขึ้นโดยที่ทั้งสองโฟลเดอร์ A และ B มีไฟล์ X เดียวกัน : ในกรณีเหล่านั้นฉันต้องการเก็บสำเนาล่าสุดของไฟล์ดังนั้น rsync ควรเปรียบเทียบทั้งสองไฟล์และหากที่มาเก่ากว่าเพิ่งข้ามไปมิฉะนั้นปลายทางจะเป็นไฟล์เก่าเขียนทับ

ฉันควรใส่พารามิเตอร์ใดในบรรทัดคำสั่ง rsync

นี่คือสิ่งที่ฉันพบ googling แต่ฉันไม่คิดว่าถูกต้อง

rsync -avz --ignore-existing src dest

หน้าคนเป็นอะไรที่มากกว่าฉัน

ขอขอบคุณ.

PS ในกรณีที่มีไฟล์อยู่ในทั้งสองโฟลเดอร์สิ่งที่ดีกว่าคือการเขียนทับไฟล์เก่าในโฟลเดอร์ปลายทางและในขณะเดียวกันก็เก็บสำเนาเก่าไว้เช่นเดียวกับข้อมูลสำรองในกรณีที่คุณควรกลับไปที่ ก่อน

คำตอบ:


66

ฉันจะใช้:

rsync -abviuzP src/ dest/
  • -i เปิดใช้รูปแบบแยกรายการซึ่งแสดงข้อมูลมากกว่ารูปแบบเริ่มต้น
  • -bสร้างไฟล์สำรองข้อมูล rsync ที่มีอยู่ในทั้งสองโฟลเดอร์ต่อท้าย~ไฟล์เก่า คุณสามารถควบคุมส่วนต่อท้ายนี้ด้วย--suffix .suf
  • -u ทำให้ rsync transfer ข้ามไฟล์ที่ใหม่กว่าใน dest กว่าใน src
  • -z เปิดการบีบอัดซึ่งมีประโยชน์เมื่อถ่ายโอนไฟล์ที่บีบอัดได้ง่ายผ่านลิงก์ช้า
  • -Pเปิด--partialและ--progress
  • --partial ทำให้ rsync เก็บไฟล์ที่ถ่ายโอนบางส่วนหากการถ่ายโอนถูกขัดจังหวะ
  • --progress แสดงแถบความคืบหน้าสำหรับการถ่ายโอนแต่ละครั้งมีประโยชน์หากคุณถ่ายโอนไฟล์ขนาดใหญ่

2
ดีจริงๆฉันลงเอยด้วยการใช้rsync -abuP
qed
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.