rsync를 사용하여 폴더에 재귀적으로 동기화하는 방법을 알고 싶지만 새 파일이나 업데이트된 파일만 업데이트하면 되며(소유자, 그룹 또는 타임스탬프가 아닌 콘텐츠만) 소스에 존재하지 않는 파일을 삭제하고 싶습니다.
답변1
-no-
이 옵션을 사용해도 될 것 같아요rsync
아니요동기화 중인 파일의 소유권이나 권한을 복사하세요.
rsync 매뉴얼 페이지에서
--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).
소유권 및 권한
매뉴얼 페이지를 보면 다음과 같은 것을 사용하고 싶을 것이라고 생각합니다.
$ rsync -avz --no-perms --no-owner --no-group ...
존재하지 않는 파일을 삭제하려면 --delete
스위치를 사용할 수 있습니다.
$ rsync -avz --no-perms --no-owner --no-group --delete ....
타임스탬프
타임스탬프의 경우 소스 파일을 대상 파일과 비교하는 방식을 변경하지 않고 이를 보존할 수 있는 방법이 없습니다. rsync
이 스위치를 사용하여 타임스탬프를 무시하도록 지시할 수 있습니다 .
-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.
고쳐 쓰다
타임스탬프의 경우 --no-times
원하는 작업을 수행할 수 있습니다.
답변2
피하는 게 더 쉬운 것 같아요-ㅏ옵션
$ -a, --archive archive mode; equals -rlptgoD (no -H,-A,-X)
그리고 원하는 옵션만 설정하세요.
모든 옵션이 마음에 들지만 사용자 수정이 마음에 들지 않는 경우-영형, 그룹-G, 시간-티및 권한-피따라서 해당 아카이브에서 이 네 가지 옵션을 뺄 수 있습니다.
$ -rlD
대상에서 파일을 삭제하려면 옵션을 사용하십시오.- 삭제.
귀하의 질문에: 하지만 모든 파일이 검사된 것 같습니다. rsync는 내용에 의해서만 변경된 파일만 전송/검사할 수 없습니다.
답변3
내 생각엔 당신이 찾고 있는 것이 옵션인 것 같아요
rsync -r --size-only
매뉴얼 페이지에서:
--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.
원본 디렉터리에서 누락된 파일을 삭제하려면 --delete
.
답변4
나는 결국 다음을 사용했습니다.
rsync -rv --size-only /mnt/from/ /mnt/to/
내 목표는 진행 상황을 확인하고 초기 파일 검사를 더 빠르게 해주는 webdav 설치입니다.
내 사용 사례에 해당 옵션을 찾고 있지 않으므로 대상에서 제거되지 않습니다.