[gelöst] Verständnisproblem: rsync -a

Du hast Probleme mit Deinem eMail-Programm, Webbrowser oder Textprogramm? Dein Lieblingsprogramm streikt?
Antworten
Benutzeravatar
detix
Beiträge: 1706
Registriert: 07.02.2007 18:51:28
Wohnort: MK

[gelöst] Verständnisproblem: rsync -a

Beitrag von detix » 19.07.2023 13:29:04

lt manpage beinhaltet -a: rlptgoD
mit diesem r (recurse into directories) zu Anfang hätte ich ja vermutet, daß neben den Dateien auch die Inhalte einzelner Verzeichnisse mit ausgegeben werden.

Warum werden dann aber nur die Verzeichnisnamen ohne deren Inhalt kopiert?
Ein rsync -ar funktioniert dagegen über alles...?!
Zuletzt geändert von detix am 20.07.2023 09:02:29, insgesamt 1-mal geändert.
Gruß an alle Debianer, und immer daran denken:
Macht ohne Haftung funktioniert nicht!

Benutzeravatar
hikaru
Moderator
Beiträge: 13594
Registriert: 09.04.2008 12:48:59

Re: Verständnisproblem: rsync -a

Beitrag von hikaru » 19.07.2023 14:33:08

detix hat geschrieben: ↑ zum Beitrag ↑
19.07.2023 13:29:04
Warum werden dann aber nur die Verzeichnisnamen ohne deren Inhalt kopiert?
Werden sie nicht. Auch Dateien werden übertragen:

Code: Alles auswählen

$ mkdir -p a1/a2/a3
$ touch a1/a2/a3/datei
$ rsync -av a1/ b1/
sending incremental file list
created directory b1
./
a2/
a2/a3/
a2/a3/datei

sent 175 bytes  received 75 bytes  500.00 bytes/sec
total size is 0  speedup is 0.00
$ ls b1/a2/a3/datei
b1/a2/a3/datei

Benutzeravatar
detix
Beiträge: 1706
Registriert: 07.02.2007 18:51:28
Wohnort: MK

Re: Verständnisproblem: rsync -a

Beitrag von detix » 20.07.2023 08:05:51

Tschuldige hikaru, natürlich ist dein Beispiel auch hier perfekt nachvollziehbar, leider vergaß ich zu schreiben dass es um die zusätzlichen Parameter --no-relative --files-from=... geht!

Um bei deinem Beispiel zu bleiben: die Struktur in $HOME erstellen und die files-from -Datei in /tmp

Code: Alles auswählen

cd $HOME; mkdir -p a1/a2/a3; touch a1/a2/a3/datei; echo "$(pwd)/a1" >/tmp/000
rsync --no-relative -a / --files-from=/tmp/000 /tmp # sichern nach /tmp = keine Unterverzeichnisse
rsync --no-relative -ar / --files-from=/tmp/000 /tmp # alles vorhanden
mit no-relative werden nur die übergeordneten Verzeichnisse weggelassen, hat sonst keine Bedeutung.
Obwohl -a r beinhaltet werden ohne zusätzliches r keine Unterverzeichniss erstellt...
Gruß an alle Debianer, und immer daran denken:
Macht ohne Haftung funktioniert nicht!

Benutzeravatar
Meillo
Moderator
Beiträge: 8818
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: Verständnisproblem: rsync -a

Beitrag von Meillo » 20.07.2023 08:44:53

Siehe Manpage:
Manpage rsync(1) hat geschrieben: --files-from=FILE
Using this option allows you to specify the exact
list of files to transfer (as read from the speci‐
fied FILE or - for standard input). It also
tweaks the default behavior of rsync to make
transferring just the specified files and directo‐
ries easier:

[...]

o The --archive (-a) option’s behavior does
not imply --recursive (-r), so specify it
explicitly, if you want it.
Ich verstehe das so: Wenn man `--files-from' verwendet, dann enthaelt `-a' kein `-r' mehr.
Use ed once in a while!

Benutzeravatar
detix
Beiträge: 1706
Registriert: 07.02.2007 18:51:28
Wohnort: MK

Re: Verständnisproblem: rsync -a

Beitrag von detix » 20.07.2023 09:00:51

Ja stimmt, jetzt sehe ichs auch, lt manpage:
--archive, -a
This is equivalent to -rlptgoD. It is a quick way of saying you want recursion and
want to preserve almost everything. Be aware that it does not include preserving
ACLs (-A), xattrs (-X), atimes (-U), crtimes (-N), nor the finding and preserving of
hardlinks (-H).

The only exception to the above equivalence is when --files-from is specified, in
which case -r is not implied.
Alles klar: gelöst, vielen Dank euch beiden :THX:
Gruß an alle Debianer, und immer daran denken:
Macht ohne Haftung funktioniert nicht!

Benutzeravatar
hikaru
Moderator
Beiträge: 13594
Registriert: 09.04.2008 12:48:59

Re: Verständnisproblem: rsync -a

Beitrag von hikaru » 20.07.2023 09:06:23

Wenn ich die Testdatei in die --source-file-Datei eintrage, dann wird auch diese übertragen:

Code: Alles auswählen

$ cat /tmp/000 
a2/a3/test
$ rsync -av --files-from=000 a1/ b1/
building file list ... done
created directory b1
a2/
a2/a3/
a2/a3/test

sent 144 bytes  received 66 bytes  420.00 bytes/sec
total size is 0  speedup is 0.00
Die Frage dürfte wohl sein, warum du diese Schalter nutzt, bzw. was du mit ihnen erreichen willst.
Ich selbst habe mit --files-from noch nicht gearbeitet, sondern nutze --exclude-from und --include-from

Benutzeravatar
detix
Beiträge: 1706
Registriert: 07.02.2007 18:51:28
Wohnort: MK

Re: [gelöst] Verständnisproblem: rsync -a

Beitrag von detix » 20.07.2023 09:31:52

Nunja, hier wird so eine Dateiliste durch die Auswahl in und mit Debiankrusader erstellt und dieser läßt sich halt wunderbar skripten (Benutzeraktionen), so war mir halt nicht klar warum Verzeichnisse leer bleiben.
exclude-from und include-from dürfte so schwierig werden...
Gruß an alle Debianer, und immer daran denken:
Macht ohne Haftung funktioniert nicht!

Antworten