Danke für die Erklärung JTH. Genau so ist es.
Das Beispiel ist 1 zu 1 aus der manpage. Ich habe nur die abgekürzten switches (
-a), dem Verständnis wegen voll ausgeschrieben (
--archive).
Was ich will? Na ich will wissen, wie man das Beispiel schreiben müssten, damit es mit der "alten" rsync Version funktioniert. So würde es nämlich nicht funktionieren.
Was sich geändert hat? Wenn ich das gut erklären könnte, müsste ich nicht so DAU-mäßig nach Beispielen fragen. Meine Bitte um praxisrelevante Beispiele zielt eben darauf ab, das besser zu verstehen. Danach kann ich es dir evtl. auch erklären.
Hintergrund:
Nutzt man rsync in scripten oder als Backend in Anwendungen muss man das verstehen. Die in der manpage angebotenen Workarounds reichen mir nicht. Ich suche eine Lösung für beide Rsync Varianten. Die finde ich aber evtl. auch selber, wenn ich die Ursache besser verstanden habe.
Mal sehen, ob ich heute Nacht noch Energie habe ein stable (hat noch die "alte" Variante) und testing (die "neue" Variante) System aufzusetzen, um die Unterschiede auszuprobieren.
EDIT:
Hier mal ein Quick&Dirty Beispiel um die Situation zu demonstrieren (Debian 11 stable arm64 von raspi.debian.net).
Es handelt sich um die "alte" rsync Variante.
Code: Alles auswählen
rsync -V
rsync version 3.2.3 protocol version 31
Copyright (C) 1996-2020 by Andrew Tridgell, Wayne Davison, and others.
Web site: https://rsync.samba.org/
Capabilities:
64-bit files, 64-bit inums, 64-bit timestamps, 64-bit long ints,
socketpairs, hardlinks, hardlink-specials, symlinks, IPv6, atimes,
batchfiles, inplace, append, ACLs, xattrs, optional protect-args, iconv,
symtimes, prealloc, stop-at, no crtimes
Optimizations:
no SIMD, no asm, openssl-crypto
Checksum list:
xxh128 xxh3 xxh64 (xxhash) md5 md4 none
Compress list:
zstd lz4 zlibx zlib none
Quelle und Ziel im Home-Verzeichnis
Code: Alles auswählen
quark user ~ ld dest
drwxr-xr-x 3 user user 4,0K 23. Aug 13:01 dest/
quark user ~ ld src*
drwxr-xr-x 2 user user 4,0K 23. Aug 12:59 'src i am'/
quark user ~ ls src*
'file with blanks.dat'
Jetzt schreiben wir das mal so, wie mein Beispiel (für die
neue Rsync-Variante!) aus der manpage:
Code: Alles auswählen
quark user ~ rsync --verbose --archive --itemize-changes localhost:'src i am' dest
receiving incremental file list
rsync: [sender] link_stat "/home/user/src" failed: No such file or directory (2)
rsync: [sender] link_stat "/home/user/i" failed: No such file or directory (2)
rsync: [sender] link_stat "/home/user/am" failed: No such file or directory (2)
Alles klar? Die Frage ist nun, wie schreibe ich das (ohne weitere Optionen/Switches oder Environment Variablen einzusetzen), so dass es funktioniert?
So sehe ein Workaround mit switch
--protect-args aus.
Code: Alles auswählen
quark user ~ rsync --protect-args --verbose --archive --itemize-changes localhost:'src i am' dest
receiving incremental file list
sent 25 bytes received 110 bytes 38.57 bytes/sec
total size is 0 speedup is 0.00