在不移动子目录的情况下,将一个文件符号链接到子目录中的新文件似乎很简单。但是有关语法的某些问题令人困惑,并且与我的期望背道而驰。这是一个测试案例:
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
这只会创建一个损坏的符号链接!我正在构建环境安装脚本中运行此脚本,因此,我尽可能避免更改当前工作目录。
ln -s deploy/resources.build.php resources.php
cat deploy/resources.php
也不起作用,因为它在temp目录而不是deploy子目录中创建符号链接。
cd deploy
ln -s resources.build.php resources.php
cd ..
这行得通,但我更希望知道如何在不更改目录的情况下进行操作。
使用完整路径,例如:
/home/whatever/src/project/temp/stuff/temp/deploy/resources.build.php
是可行的,但不可行且有些不切实际,尤其是在构建环境中,其中所有项目内容在构建之间可能会有所不同,等等。
如何在子目录中的两个文件之间创建符号链接,而又不移入该子目录,也不能为该文件赋予新的别名?