Bạn có thể hoàn thành cả hai nhiệm vụ trong cùng một lệnh bằng cách sử dụng --delete
cờ tới rsync
.
> ls -1 localdir/
a.foo
b.foo
> ssh remote-host "ls -1 remotedir/"
c.foo
> rsync -a --delete localdir/ remote-host:remotedir/
> ssh remote-host "ls -1 remotedir/"
a.foo
b.foo
Các --delete
tùy chọn loại bỏ các file từ thư mục đích không tồn tại trên nguồn. Có một số lựa chọn về thời điểm các tệp bị xóa và cách xử lý các tệp bị loại trừ.
> man rysnc
...
--delete delete extraneous files from dest dirs
--delete-before receiver deletes before transfer (default)
--delete-during receiver deletes during xfer, not before
--delete-after receiver deletes after transfer, not before
--delete-excluded also delete excluded files from dest dirs
Trang người đàn ông cũng chứa cảnh báo này:
Tùy chọn này có thể nguy hiểm nếu sử dụng không chính xác! Trước tiên, bạn nên chạy trước bằng cách sử dụng --dry-run option
( -n
) để xem những tệp nào sẽ bị xóa để đảm bảo các tệp quan trọng không được liệt kê.