Có rsync xóa các tập tin, thư mục tại đích theo mặc định?


44

Các tập tin

Giả sử /foo/srcchỉ chứa A.c/foo/destchứa cả hai A.cB.c. Và giả sử tôi chạy lệnh sau:

rsync /foo/src/ /foo/dest

Sẽ rsyncxóa B.c?

Thư mục

Bây giờ giả sử /foo/srccó chứa thư mục chứa Amột số tệp bên trong nó và /foo/destchứa cả thư mục AB, mỗi tệp có một số tệp bên trong chúng. Và giả sử tôi chạy lệnh sau (tùy chọn -a bao gồm -r, đệ quy):

rsync -a /foo/src/ /foo/dest

Sẽ rsyncxóa Bvà nội dung của nó?


Bạn cần công --deletetắc.
fideli

Câu trả lời:


51

Theo mặc định, rsync không xóa các tệp nhưng điều đó phụ thuộc vào các tùy chọn lệnh bạn chỉ định. Bạn có thể sử dụng bất kỳ thao tác nào sau đây nếu bạn muốn xóa các tệp:

  • −−del (bí danh cho −−delete − trong thời gian)
  • −−delete (xóa các tệp không liên quan khỏi các dir dir)
  • −−delete − before (người nhận xóa trước xfer [default])
  • −−delete − during (người nhận xóa trong khi xfer, không phải trước đó)
  • −−delete − after (người nhận xóa sau xfer, không phải trước)
  • −−delete − bị loại trừ (cũng xóa các tệp bị loại trừ khỏi các dir dir)
  • −−max xóa = NUM ​​(không xóa nhiều hơn NUM tệp)

Vì bạn đặc biệt gọi ra tùy chọn -a , đây là những gì trang nam nói

−a, −− chủ nghĩa >

Điều này tương đương với −rlptgoD . Đó là một cách nhanh chóng để nói rằng bạn muốn đệ quy và muốn bảo tồn hầu hết mọi thứ (với H là một thiếu sót đáng chú ý). Ngoại lệ duy nhất cho sự tương đương ở trên là khi −−files từ được chỉ định, trong trường hợp −r không được ngụ ý.

Lưu ý rằng −a không bảo tồn các liên kết cứng , vì việc tìm kiếm các tệp được liên kết nhiều lần rất tốn kém. Bạn phải chỉ định riêng −H .

Vì vậy, có vẻ như câu trả lời cho câu hỏi của bạn là KHÔNG, nó sẽ không bị xóa với các ví dụ của bạn.
HTH

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.