GNU/Linux >> LINUX-Kenntnisse >  >> Linux

rsync und symbolische Links

  1. "Symlinks als Symlinks kopieren" bedeutet genau das, was es sagt:Wenn rsync einen Symlink im Quellverzeichnis sieht, erstellt es einen identischen Symlink im Zielverzeichnis. Nichts weiter.

    (Ein paar Zeilen weiter unten in der Handbuchseite, eine andere Option, --copy-links , beschreibt das gegenteilige Verhalten (immer das Kopieren der Daten), das Sie als unerwünscht beschrieben haben.)

    Siehe auch Abschnitt "Symbolische Links":

    Wenn --links angegeben ist, werden symbolische Links mit demselben Ziel auf dem Ziel neu erstellt.

  2. Es ist nicht das gewünschte Verhalten, weil Sie --links falsch interpretieren tut und deshalb nach dem falschen Verhalten fragt (siehe Antwort #1).

  3. Standardmäßig kopiert es das Ziel exakt.

    Das heißt, wenn der Link auf einen absoluten Pfad verwies (z. B. /home/me/projects ), zeigt es weiterhin auf denselben Pfad; es wird nicht brechen , zeigt es einfach weiterhin auf eine Datei in Ihrem Home-Verzeichnis und nicht auf die in Ihrem Backup.

    Wenn hingegen der Link auf einen relativen Pfad (z. B. ../../projects ), wird es auch Zeigen Sie weiterhin auf denselben Pfad, aber da er relativ zum Speicherort des Symlinks ist, zeigt der Symlink in Ihrem Backup auch auf eine Datei in Ihrem Backup.

    Leider scheint es keine Option zu geben, absolute Symlinks für ihre neue Basis zu übersetzen (nur eine Option, um sie vollständig zu brechen). Um Probleme zu vermeiden, sollten Sie vorhandene symbolische Links in relative ändern (was im Allgemeinen eine gute Idee für Links innerhalb von $HOME ist).


@grawity hat eine großartige Antwort, aber hier ist ein Screenshot mit einigen relevanten Informationen aus der Dokumentation. Hier ist der genaue Wortlaut von -l und -L Optionen, die zum Beispiel am relevantesten zu sein scheinen:

Quelle:https://linux.die.net/man/1/rsync, oder man rsync Handbuchseiten unter Linux.

Beachten Sie auch, dass -a (--archive ) beinhaltet auch den -l Option darin, was großartig ist, da ich den -l sehr gerne verwende Option zum Beibehalten meiner Symlinks von der Quelle als Symlinks am Ziel. Aus den Manpages:

-a, --archive               archive mode; equals -rlptgoD (no -H,-A,-X)

Anmerkung für mein Lieblings-rsync Befehle und Anweisungen, einschließlich Kopieren, Spiegeln, Anzeigen des Gesamtfortschritts...

... Probeläufe durchführen, stderr und stdout in (separate) Dateien protokollieren, Statistiken anzeigen, eine include path file verwenden und eine Ausschlussdatei usw. finden Sie meine vollständige Antwort hier im zweiten Abschnitt mit dem Titel „2. rsync-Befehlszeilentool (Linux, Windows mit Cygwin) ":https://superuser.com/a/1464264/425838


Linux
  1. Gibt es eine Möglichkeit zu überprüfen, ob symbolische Links auf ein Verzeichnis verweisen?

  2. Git und Hardlinks

  3. Umgebungsvariablen in symbolischen Links

  4. Verhalten von cd/bash bei symbolischen Links

  5. Wie kopiere ich symbolische Links?

So erstellen Sie symbolische Links in Linux

So entfernen (löschen) Sie symbolische Links in Linux

Eine einfache Möglichkeit, symbolische Links in Linux aufzulisten

Schnelle und langsame Symlinks?

So finden Sie defekte Symlinks in Linux

So erhalten Sie eine Liste symbolischer Links unter Linux