Lệnh rsync để «thông minh» hợp nhất hai thư mục là gì?


39

Tôi có một số thư mục bị trùng lặp do nhầm lẫn và tôi phải hợp nhất chúng lại với nhau. Giả sử thư mục A chứa tệp X và thư mục B chứa tệp Y, tôi muốn sao chép tệp X vào thư mục B. Nhưng, tất nhiên, tôi có thể phải đối mặt với các trường hợp phức tạp hơn, trong đó cả thư mục A và B đều chứa cùng một tệp X : trong những trường hợp đó, tôi muốn giữ bản sao mới nhất của tệp, vì vậy rsync nên so sánh cả hai tệp và nếu nguồn gốc cũ hơn chỉ cần bỏ qua, nếu không thì đích đến là bản cũ hơn, ghi đè.

Những tham số nào tôi nên đặt trên dòng lệnh rsync?

Đây là những gì tôi thấy googling, nhưng tôi không nghĩ là chính xác.

rsync -avz --ignore-existing src dest

Trang người đàn ông bằng cách nào đó vượt ra ngoài tôi.

Cảm ơn bạn.

PS trong những trường hợp có tệp tồn tại trong cả hai thư mục, điều tốt hơn là ghi đè tệp cũ vào thư mục đích và đồng thời giữ một bản sao cũ hơn, giống như một bản sao lưu trong trường hợp bạn nên quay lại Trước

Câu trả lời:


66

Tôi sẽ dùng:

rsync -abviuzP src/ dest/
  • -i bật định dạng được ghi thành từng mục, hiển thị nhiều thông tin hơn định dạng mặc định
  • -btạo các tệp sao lưu rsync tồn tại trong cả hai thư mục, nối thêm ~vào tệp cũ. Bạn có thể kiểm soát hậu tố này với--suffix .suf
  • -u làm cho rsync chuyển bỏ qua các tệp mới hơn trong mệnh lệnh so với trong src
  • -z bật tính năng nén, rất hữu ích khi truyền các tệp dễ nén qua các liên kết chậm
  • -Pbật --partial--progress
  • --partial làm cho rsync giữ các tệp được chuyển một phần nếu quá trình truyền bị gián đoạn
  • --progress hiển thị thanh tiến trình cho mỗi lần chuyển, hữu ích nếu bạn chuyển các tệp lớn

2
Thực sự tốt, tôi đã kết thúc bằng cách sử dụngrsync -abuP
qed
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.