Wie kopiere ich einen symbolischen Link?

41

Ich habe einen symbolischen Link zu einer Datei in einem Verzeichnis. Ich möchte den gleichen Link in einem anderen Verzeichnis haben. Wie kopiere ich einen symbolischen Link?

Ich habe versucht, den symbolischen Link zu kopieren, aber dies kopiert die Datei, auf die er zeigt, anstelle des symbolischen Links.

Benutzer
quelle
1
Funktioniert cpauf CentOS Unterstützung -Poder --no-dereferenceSchalter?
Manatwork
@manatwork: Danke, das hat es gerade gefunden. Wenn du es als Antwort posten willst, akzeptiere ich es.
Benutzer

Antworten:

54

Verwenden Sie cp -P(Großbuchstaben P), um niemals eine symbolische Verknüpfung zu durchlaufen, und kopieren Sie stattdessen die symbolische Verknüpfung.

Dies kann mit anderen Optionen kombiniert werden, z. B. -Rzum Kopieren einer Verzeichnishierarchie. cp -RLDurchläuft alle symbolischen Verknüpfungen zu Verzeichnissen und cp -RPkopiert alle symbolischen Verknüpfungen als solche. cp -Rkann je nach Unix-Variante das eine oder andere tun; GNU cp(wie bei CentOS) ist standardmäßig -P.

Selbst mit -Pkönnen Sie das Ziel eines symbolischen Links in ein Verzeichnis in der Befehlszeile kopieren, indem Sie /am Ende ein hinzufügen : cp -RP foo/ barkopiert den Verzeichnisbaum, auf den fooverwiesen wird.

GNU cphat eine praktische -aOption -R, die -P, -pund ein bisschen mehr kombiniert . Es erstellt eine exakte Kopie der Quelle (soweit möglich), wobei die Verzeichnishierarchie, symbolische Links, Berechtigungen, Änderungszeiten und andere Metadaten erhalten bleiben.

Gilles 'SO - hör auf böse zu sein'
quelle
3
Beachten Sie, dass nach dem Kopieren / Verschieben ein Symlink möglicherweise beschädigt wird (wenn die Quelle ein Symlink zu einem relativen Pfad ist).
Stéphane Chazelas
3
Gibt es eine Möglichkeit, das Unterbrechen von Symlinks zu verhindern, wenn Sie in ein höheres oder niedrigeres Verzeichnis wechseln?
Andrew Brown
Als Anmerkung: "GNU cp" ist nicht dasselbe wie das gcp, was ich benutze. gcp -Pist derzeit kaputt, auch im Jahr 2019. (seufz).
tgm1024
1

Überprüfen Sie diese Antwort unter https://superuser.com/a/315757/53590, um festzustellen, ob ein spezielles CentOS-Problem vorliegt. Die ganze Frage mag dir vielleicht helfen, aber der letzte Teil ist speziell CentOS.

Simon Hoare
quelle
1
Beachten Sie, dass andere Benutzer möglicherweise eine andere Reihenfolge als Ihre auswählen, um die Antworten aufzulisten. Außerdem kann sich die Reihenfolge mit der Zeit ändern. Bitte posten Sie einen direkten Link zur angegebenen Antwort. (Klicken Sie auf den Link "Teilen" unter dieser Antwort und kopieren Sie den angezeigten direkten Link.)
manatwork