Es scheint einfach zu sein, eine Datei mit einer neuen Datei in einem Unterverzeichnis zu verknüpfen, ohne Unterverzeichnisse zu verschieben. Aber etwas an der Syntax ist verwirrend und widerspricht dem, was ich erwarten würde. Hier ist ein Testfall:
mkdir temp
cd temp
mkdir deploy
echo "Contents of the build file!" > deploy/resources.build.php
ln -s deploy/resources.build.php deploy/resources.php
cat deploy/resources.php #bad symlink
Dies erzeugt nur einen defekten Symlink! Ich führe dies in einem Setup-Skript für die Build-Umgebung aus, daher möchte ich nach Möglichkeit vermeiden, das aktuelle Arbeitsverzeichnis zu ändern.
ln -s deploy/resources.build.php resources.php
cat deploy/resources.php
Funktioniert auch nicht, da der Symlink im temporären Verzeichnis anstelle des Deploy-Unterverzeichnisses erstellt wird.
cd deploy
ln -s resources.build.php resources.php
cd ..
Das funktioniert, aber ich würde lieber wissen, wie es geht, ohne die Verzeichnisse zu wechseln.
Verwenden eines vollständigen Pfads wie:
/home/whatever/src/project/temp/stuff/temp/deploy/resources.build.php
Funktioniert, ist aber unkompliziert und etwas unpraktisch, insbesondere in einer Build-Umgebung, in der alle Projektmaterialien zwischen Builds und dergleichen unterschiedlich sein können.
Wie kann ich einen Symlink zwischen zwei Dateien in einem Unterverzeichnis erstellen, ohne in dieses und aus diesem Unterverzeichnis zu wechseln und der neuen Datei "Alias" einen neuen Namen zu geben?