Nehmen wir an, ich habe zwei identische Systeme. Auf dem ersten System habe ich einen symbolischen Link erstellt. Beim zweiten möchte ich diesen Symlink über SFTP kopieren und der Symlink soll genauso funktionieren (dh wenn der Symlink /etc/
nach dem Kopieren auf ihn verweist, wird nur der Symlink und nur der Symlink (nicht die verknüpften Dateien) kopiert).
Irgendwelche Ideen, wie ich das machen kann / ob ich das kann? Ich möchte nur den symbolischen Link kopieren, sonst nichts; nur die Referenz.
sftp
Ich werde dich das nicht tun lassen.rsync
can, as canssh cp ...
Antworten:
Wenn Sie den Symlink tarieren, können Sie den Tarball nach Belieben auf den Remote-Computer kopieren. Wenn Sie es entpacken, werden Sie feststellen, dass Sie nur den symbolischen Link kopiert haben und sonst nichts. Beispielsweise:
Um dies zu testen, habe ich zuerst eine Textdatei erstellt.
Erstellen Sie dann einen Symlink zur Datei und komprimieren Sie ihn zu einem tar gzip.
Übertragen Sie diese Datei auf Ihren anderen Computer und dekomprimieren Sie sie dann:
Sie werden feststellen, dass der Symlink vorhanden ist, jedoch nicht die Originaldatei, auf die er verwiesen hat.
Wenn Sie sowohl die Originaldatei als auch den Symlink übertragen möchten, während ihre Beziehung erhalten bleibt, können Sie beide in den Tarball einfügen, und beide werden übertragen, und der Symlink sollte beim Dekomprimieren immer noch korrekt auf die Originaldatei verweisen der Tarball am Zielort.
quelle
sftp
( linux.die.net/man/1/sftp )! Es gibt den Befehlsymlink
speziell für das, was Sie zu brauchen scheinen.Es ist ein wenig unklar, wie genau Sie mit dem Symlink umgehen möchten. Soweit ich weiß, möchten Sie den Symlink auf dem anderen System neu erstellen. Symlinks sind vom Dateisystem abhängig. Das zum Kopieren von Dateien verwendete Protokoll muss dies berücksichtigen. Ein gutes Beispiel ist die Verwendung
rsync
mit der-a
Option.Genauer gesagt, die
-l
Option, ist aber-a
wahrscheinlich das, was Sie wollen.Es werden Symlinks neu erstellt, ohne dass die Ziele überfahren werden (Dereferenzierung der Links).
quelle
sftp
Durchläuft mit dem-r
Switch Unterverzeichnisse , folgt jedoch keinen Symlinks, da Dateisysteme abstrahiert werden.sftp
unterstützt das Erstellen von Symlinks auf dem Host. Sie sollten zumindest versuchen, nur den Symlink herunterzuladen (wenn der Symlink ist~/etc
-> verzichten/etc/
Sieget etc
auf das Trailing/
) und sehen, was passiert. Dies hängt vom FS des Servers und des Clients ab. Bitte bearbeiten Sie Ihre ursprüngliche Frage entsprechend!Eine sehr einfache Lösung (für das Home-Verzeichnis):
oder
z.B
um eine symlinked .bashrc-Platzierung an einem anderen (z. B. Netzwerk-) Ziel bereitzustellen.
quelle
Ich weiß, dass @polemon dies bereits beantwortet hat.
Aber ich tue mein bisschen für eine schnelle Lösung.
Ich musste man rsync machen, um zu wissen, welchen Schalter ich verwenden möchte ...
In Ihrem Fall müssen Sie jedoch sicherstellen, dass die Links nicht beschädigt werden!
quelle
In den anderen Antworten wird bereits erläutert, wie eine symbolische Verknüpfung auf eine andere Maschine übertragen wird. Unabhängig davon, wie Sie den Symlink übertragen, können Sie diesen Symlink jedoch nicht verwenden, um
/etc/
über FTP, SFTP, SCP, SSH oder auf andere Weise auf eine Datei zuzugreifen . Diese Dienste werden in der Regel in ein bestimmtes Verzeichnis verschoben oder auf andere Weise daran gehindert, Zugriff auf Dateien zu gewähren, die nicht explizit freigegeben wurden. Natürlich gibt es auf älteren Systemen immer Möglichkeiten, dies zu umgehen, aber solche Schwachstellen werden in der Regel behoben und aktualisiert, sobald sie gefunden werden. Es tut mir leid, ich glaube nicht, dass das, was Sie tun möchten, möglich sein wird.quelle