Verwenden Sie `cp -s --parents`, um Symlinks zu erstellen

346
Jyunhao Shih

cp -s --parents -t DEST_DIR /SRC/PATH1 /SRC/PATH2

Ich benutze den obigen Befehl, um symbolische Links zu machen, die sich auf eine Reihe von Quellpfaden beziehen, wobei die gesamte Verzeichnisstruktur der Quellpfade unter diesem Zielverzeichnis neu erstellt wird. (Das heißt, das Ergebnis wäre DEST_DIR / SRC / PATH1 und DEST_DIR / SRC / PATH2, dies sind Symlinks, die sich auf / SRC / PATH1 bzw. / SRC / PATH2 beziehen.)

Dies funktioniert ziemlich gut, es sei denn, der Endteil des Quellpfads ist ein Verzeichnis. In diesem Fall lehnt cp den Symlink ab. Es sagt, ich hätte -rOption hinzufügen sollen, da die Quelle ein Verzeichnis ist. Das Kopieren / Symlinking von Dingen im Quellverzeichnis ist jedoch nicht meine Absicht. Ich möchte nur, dass der Quellpfad selbst symbolisch verknüpft ist, unabhängig davon, ob es sich um eine Datei oder ein Verzeichnis handelt.

Ich weiß, dass ich mit Shell / Python-Scripting erreichen kann, was ich will. Aber ich frage mich nur, ob CP andere Optionen hat, die meine Bedürfnisse erfüllen.

0
Ich habe nachgesehen und finde keine Optionen (in Ubuntu 18.04), um die Standardbehandlung zu überschreiben, bei der ein Quellverzeichnis als Inhalt interpretiert wird. Der alternative Befehl "ln -s" hat leider keine Option "--parents", so dass Sie gezwungen sind, Scripting zu verwenden. Es ist einfach, `mkdir -p` und` ln -s` zusammen zu verwenden, um die Zielverknüpfung zu erstellen. AFH vor 5 Jahren 0
@ AFH Ich denke du hast recht. Danke für deine Hilfe. Jyunhao Shih vor 5 Jahren 0

0 Antworten auf die Frage