Sie müssen einen absoluten Pfad in der Quelle angeben. In Ihrem Fall wäre das:
ln -s $PWD/* ../destination/
Im Gegensatz zu einer festen Verknüpfung, bei der der erstellte Verzeichniseintrag direkt auf dieselbe Quelldatei verweist, enthält eine symbolische Verknüpfung den Text der ursprünglichen Dateiverweisung. Tatsächlich muss die Quelldatei nicht vorhanden sein, wenn eine symbolische Verknüpfung erstellt wird. Durch die Verwendung von wird jedoch *
sichergestellt, dass nur vorhandene Quelldateien verwendet werden.
Tatsächlich ist es etwas komplizierter als das: Wenn Sie in der Verknüpfung einen absoluten Pfad angeben, verhält sich der Verweis auf die Verknüpfung so, als hätten Sie die Originaldatei angegeben. Wenn Sie jedoch einen relativen Pfad angeben, wird dieser dem Verzeichnis hinzugefügt, in dem sich der Link befindet. Eine Alternative, die Sie aus dem target
Verzeichnis verwenden könnten, ist:
cd ../destination/; ln -s ../target/* .
Dies hätte den gleichen Effekt wie ein absoluter Pfad, unterscheidet sich jedoch darin: Wenn der gesamte Verzeichnisbaum an einen anderen Speicherort kopiert oder verschoben wurde (z. B. irgendwo in einem Verzeichnis eines anderen Benutzers), verweisen die Links auf die Dateien an ihrem neuen Speicherort. Die Wahl der absoluten oder relativen Links hängt daher davon ab, ob Sie die Quelldateien zusammen mit den Links kopieren oder verschieben möchten: Wenn die Quelldateien immer am selben Ort bleiben, verwenden Sie absolute Links.