rsync 옵션이 --list-only
다소 잘못된 출력을 제공하는 것 같습니다. 이것은 내 테스트 파일입니다.
~/src$ ls
lrwxrwxrwx 1 michael michael 23 Sep 5 09:19 far_symlink -> /home/michael/Documents
-rw------- 1 michael michael 0 Sep 5 09:18 file
lrwxrwxrwx 1 michael michael 4 Sep 5 09:18 near_symlink -> file
전송할 파일 목록을 원하며 심볼릭 링크가 필요하지 않으므로 다음을 사용하여 실행합니다 --list-only
.
~/src$ rsync -r --no-links --list-only ./ ~/dest
drwx------ 4,096 2018/09/05 09:19:05 .
lrwxrwxrwx 23 2018/09/05 09:19:05 far_symlink
-rw------- 0 2018/09/05 09:18:15 file
lrwxrwxrwx 4 2018/09/05 09:18:28 near_symlink
심볼릭 링크를 나타냅니다.~ 할 것이다양도가 가능하지만 그렇지 않습니다. 실제로 송금하는 경우:
~/src$ ls ~/dest
drwx------ 2 michael michael 4.0K 2018-09-05 09:39:16 .
drwxr-xr-x 30 michael michael 4.0K 2018-09-05 09:44:49 ..
~/src$ rsync -r --no-links ./ ~/dest
skipping non-regular file "far_symlink"
skipping non-regular file "near_symlink"
~/src$ ls ~/dest
drwxr-xr-x 30 michael michael 4.0K 2018-09-05 09:44:49 ..
-rw------- 1 michael michael 0 2018-09-05 09:48:10 file
drwx------ 2 michael michael 4.0K 2018-09-05 09:48:10 .
심볼릭 링크가 전송되지 않았습니다.
그래서 그것은 부정직한 것으로 보입니다 --list-only
. 실제로 전송되는 파일 목록을 얻을 수 있는 방법이 있습니까(원격 SSH 서버 등에 접속할 필요 없이)? 내가 무엇을 놓치고 있나요?
우분투 18.04를 사용하고 있습니다. 그 외 세부 사항:
$ uname -a
Linux ubuntu 4.15.0-33-generic #36-Ubuntu SMP Wed Aug 15 16:00:05 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
$ rsync --version
rsync version 3.1.2 protocol version 31
Capabilities:
64-bit files, 64-bit inums, 64-bit timestamps, 64-bit long ints,
socketpairs, hardlinks, symlinks, IPv6, batchfiles, inplace,
append, ACLs, xattrs, iconv, symtimes, prealloc
업데이트: 저의 잘못된 용어를 용서해주세요. 나는후보자양도하고 뭐고~ 할 것이다양도되었습니다. 내 질문은 왜 심볼릭 링크가 고려되는지입니다.후보자전송(따라서 나열 --list-only
)되지만 목적지의 조건에 관계없이 분명히 전송되지 않으며 (제 생각에는) 명시적으로 제외됩니다 no-links
.
답변1
이 --list-only
옵션은 파일을 인식하지 못합니다~ 할 것이다전송된 파일만 인식합니다.후보자이전하기 위해서. 여기에서 볼 수 있습니다.
touch aa bb cc; ln -s cc dd
rsync --list-only --no-links -a ?? /tmp
rsync -av ?? /tmp
rsync --list-only --no-links -a ?? /tmp
최종 출력rsync
-rw-r--r-- 0 2018/09/05 16:35:01 aa
-rw-r--r-- 0 2018/09/05 16:35:01 bb
-rw-r--r-- 0 2018/09/05 16:35:01 cc
lrwxrwxrwx 2 2018/09/05 16:35:01 dd -> cc
rsync
파일이 전송되었으며 소스에서 변경되지 않은 상태로 유지되는 마지막 파일을 고려하십시오 . --list-only
전송해야 할 파일을 표시하면 아무 것도 나열되지 않습니다 . 그러나 고려해야 할 소스 파일 세트는 여전히 표시됩니다.
보고할 파일 세트를 관리하기 위해 대상의 컨텍스트를 사용하려면 다음을 사용하십시오.--dry-run --info=name
rsync --dry-run --info=name --archive --no-links ?? /tmp
또는 생성된 것과 유사한 출력을 원하는 경우 --list-only
(구체적으로 첫 번째 문자의 항목 유형 생략)
rsync --dry-run --info=name --out-format='%B%16l %t %f' --archive --no-links ?? /tmp
초기 출력
skipping non-regular file "dd"
rw-r--r-- 0 2018/09/05 16:42:30 aa
rw-r--r-- 0 2018/09/05 16:42:30 bb
rw-r--r-- 0 2018/09/05 16:42:30 cc
파일 복사 후 후속 출력
skipping non-regular file "dd"