Câu trả lời:
Tôi nghĩ rằng bạn có thể sử dụng -no-
tùy chọn để rsync
đến KHÔNG sao chép các quyền sở hữu hoặc quyền của các tập tin bạn đang sync'ing.
--no-OPTION
You may turn off one or more implied options by prefixing the option
name with "no-". Not all options may be pre‐fixed with a "no-":
only options that are implied by other options (e.g. --no-D,
--no-perms) or have different defaults in various circumstances (e.g.
--no-whole-file, --no-blocking-io, --no-dirs). You may specify
either the short or the long option name after the "no-" prefix (e.g.
--no-R is the same as --no-relative).
For example: if you want to use -a (--archive) but don’t want -o
(--owner), instead of converting -a into -rlptgD, you could specify
-a --no-o (or -a --no-owner).
The order of the options is important: if you specify --no-r -a, the
-r option would end up being turned on, the opposite of -a
--no-r. Note also that the side-effects of the --files-from
option are NOT positional, as it affects the default state of several
options and slightly changes the meaning of -a (see the --files-from
option for more details).
Nhìn qua trang người đàn ông tôi tin rằng bạn muốn sử dụng một cái gì đó như thế này:
$ rsync -avz --no-perms --no-owner --no-group ...
Để xóa các tập tin không tồn tại, bạn có thể sử dụng công --delete
tắc:
$ rsync -avz --no-perms --no-owner --no-group --delete ....
Đối với dấu thời gian, tôi không thấy cách nào để giữ điều này mà không thay đổi cách bạn so sánh các tệp SOURCE so với DEST. Bạn có thể muốn nói rsync
bỏ qua dấu thời gian bằng cách sử dụng công tắc này:
-I, --ignore-times
Normally rsync will skip any files that are already the same size
and have the same modification timestamp. This option turns off this
"quick check" behavior, causing all files to be updated.
Đối với dấu thời gian, --no-times
có thể làm những gì bạn đang tìm kiếm.
Tôi nghĩ rằng nó dễ dàng hơn để tránh tùy chọn -a
$ -a, --archive archive mode; equals -rlptgoD (no -H,-A,-X)
và chỉ đặt các tùy chọn bạn muốn.
Nếu bạn thích tất cả các tùy chọn nhưng không phải là sửa đổi của người dùng -o , nhóm -g , thời gian -t và quyền -p để bạn có thể trừ bốn tùy chọn này khỏi kho lưu trữ tương đương.
$ -rlD
Để xóa các tệp trên đích, vui lòng sử dụng tùy chọn - xóa .
Đối với câu hỏi của bạn: Nhưng tôi nghĩ rằng tất cả các tệp sẽ được kiểm tra - rsync có thể chuyển đổi / kiểm tra các tệp chỉ thay đổi theo nội dung.
-l
là dành cho các liên kết, -D
thiết bị (được đối xử như --specials
), tôi nghĩ -r
một mình là đủ nếu chúng ta đang nói nội dung.
Tôi nghĩ rằng những gì bạn đang tìm kiếm là tùy chọn
rsync -r --size-only
từ trang người đàn ông:
--size-only
This modifies rsync’s "quick check" algorithm for finding files that need to be transferred,
changing it from the default of transferring files with either a changed size or a changed
last-modified time to just looking for files that have changed in size. This is useful when
starting to use rsync after using another mirroring system which may not preserve timestamps
exactly.
Nếu bạn thực sự muốn xóa các tập tin bị thiếu trong thư mục nguồn, hãy sử dụng --delete
Bạn có thể buộc rsync bỏ qua các kiểm tra dựa trên thời gian và kích thước mod của tệp và sử dụng phương pháp tiếp cận dựa trên chksum với công tắc "-c".
-c, --checksum skip based on checksum, not mod-time & size
Điều này không có nghĩa là nó cần so sánh toàn bộ tệp theo từng khối (và chuyển siêu dữ liệu liên quan qua lại giữa nguồn và đích để điều này xảy ra) bất kể thời gian và kích thước tệp có khớp hay không, nhưng sẽ chỉ chuyển các khối khác nhau giữa nguồn và đích.
Sử dụng công tắc này kết hợp với các công tắc khác do người khác đề xuất sẽ hạn chế những gì được sao chép (chỉ sao chép đã thay đổi) và có lợi ích khi kiểm tra tính nhất quán giữa nguồn và đích, NHƯNG mất nhiều thời gian hơn tùy thuộc vào tốc độ liên kết của bạn như nó phải chksum các đoạn tập tin ở cả hai bên và so sánh).
>f..T...
gợi ý các tệp và thời gian sửa đổi đang được đặt ở đích, đó là điều tôi đang cố gắng tránh.