Il semble qu'il devrait être simple de lier symboliquement un fichier à un nouveau fichier dans un sous-répertoire .... .... sans déplacer les sous-répertoires. Mais quelque chose à propos de la syntaxe laisse perplexe et va à l'encontre de ce à quoi je m'attendrais. Voici un cas de test:
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
Cela crée juste un lien symbolique cassé! J'exécute cela dans un script de configuration de l'environnement de construction, donc je veux éviter de changer le répertoire de travail actuel si possible.
ln -s deploy/resources.build.php resources.php
cat deploy/resources.php
Ne fonctionne pas non plus car il crée le lien symbolique dans le répertoire temporaire au lieu du sous-répertoire deploy.
cd deploy
ln -s resources.build.php resources.php
cd ..
Cela fonctionne, mais je préfère savoir comment le faire sans changer de répertoire.
Utiliser un chemin complet comme:
/home/whatever/src/project/temp/stuff/temp/deploy/resources.build.php
Fonctionne, mais est peu pratique et quelque peu impraticable, en particulier dans un environnement de génération où tous les éléments du projet peuvent être différents entre les générations, etc.
Comment puis-je créer un lien symbolique entre deux fichiers dans un sous-répertoire, sans entrer dans ce sous-répertoire et en sortir, et tout en donnant au nouveau fichier "alias" un nouveau nom?