Parece que deve ser simples vincular um arquivo a um novo arquivo em um subdiretório .... .... sem mover subdiretórios. Mas algo sobre a sintaxe é desconcertante e contrário ao que eu esperaria. Aqui está um caso de teste:
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
Isso apenas cria um link simbólico quebrado! Estou executando isso em um script de configuração do ambiente de compilação, portanto, desejo evitar alterar o diretório de trabalho atual, se possível.
ln -s deploy/resources.build.php resources.php
cat deploy/resources.php
Também não funciona porque cria o link simbólico no diretório temp em vez do subdiretório deploy.
cd deploy
ln -s resources.build.php resources.php
cd ..
Isso funciona, mas eu preferiria saber como fazer isso sem alterar os diretórios.
Usando um caminho completo como:
/home/whatever/src/project/temp/stuff/temp/deploy/resources.build.php
Funciona, mas é imprudente e um tanto impraticável, especialmente em um ambiente de construção em que todo o material do projeto pode ser diferente entre construções e similares.
Como posso criar um link simbólico entre dois arquivos em um subdiretório, sem passar para o subdiretório e sair dele e, ao mesmo tempo, dar ao novo arquivo "alias" um novo nome?