Câu trả lời:
Rsync không thể so sánh các tệp chỉ sử dụng dấu thời gian. Nó sẽ luôn so sánh kích thước tệp bất kể và nếu bạn chỉ định -c
nó cũng sẽ so sánh tổng kiểm tra của tệp.
Toàn bộ quan điểm của rsync là làm cho một cây tập tin khớp với nhau. Nếu một tệp trong một cây có kích thước khác với cùng một tệp trong cây khác thì về mặt logic, chúng phải khác nhau. Vì vậy, rsync sẽ sao chép nó. Bất kể.
Nếu bạn muốn sao chép các tệp theo cách bạn muốn, bạn sẽ phải áp dụng một phương pháp khác bằng các công cụ khác nhau.
Nếu bạn chỉ muốn sao chép các tệp đã thay đổi kể từ ngày biết (giả sử, lần cuối cùng bạn sao chép các tệp), bạn có thể sử dụng cờ -cnewer của find. Tập lệnh nhỏ sau đây sẽ tìm thấy các tệp đã thay đổi kể từ lần cuối cùng được chạy:
find /path/to/files -cnewer /tmp/lastSync
touch /tmp/lastSync
-Cnewer so sánh thời gian sửa đổi của tệp với thời gian của tệp được chỉ định (/ tmp / lastSync trong ví dụ này):
-cnewer file
File's status was last changed more recently than file was modified.
If file is a symbolic link and the -H option or the -L option is in
effect, the status-change time of the file it points to is always used.
Lệnh touch sẽ cập nhật dấu thời gian của / tmp / lastSync để phản ánh thực tế rằng tập lệnh vừa được chạy để các lần chạy tiếp theo của tập lệnh sử dụng thời gian hiện tại làm cơ sở thời gian.
Đầu ra của lệnh find sau đó có thể được sử dụng để chỉ định các tệp cần sao chép đến đích bằng bất kỳ phương thức nào bạn thích (cp, scp, sao cũng được).