如何在另一个符号链接目录中创建目录的符号链接?

时间:2019-12-01 14:23:48

标签: laravel bash symlink ln

通过将Laravel网站克隆到与public_html(称为laravel)相同级别的目录中,并使用以下命令将指向laravel / public目录的符号链接创建到public_html中,我成功地将Laravel网站部署到Web服务器上: ln -s laravel/public public_html 效果很好。

现在,我想要开发该站点的“测试”版本,并且我希望这样做。

  1. 我将项目克隆到了与public_html和laravel目录相同级别的“ laravel_dev”目录中。
  2. 我创建了public_html / dev目录。
  3. 现在,我想将“ laravel_dev / public”创建为“ public_hmtl / dev”的符号链接,这是我遇到麻烦的地方。 如果我做 ln -s laravel_dev/public public_html/dev 它将在public_html / dev内部创建一个名为public的文件(而非目录)。

我尝试使目标进入laravel / public / dev,结果相同。 我再次检查了laravel_dev / public目录是否存在,并且它不为空。 我还尝试删除了laravel / public / dev中的dev目录,结果是它在laravel / public中创建了一个名为dev的文件,但它不是目录。

为了澄清,我的目录树是这样的:

www
|___public_html(1)/dev
|___laravel/public(1*)/dev
|___laravel_dev/public

执行上述命令时,我位于www目录中 (数字)表示符号链接,而*表示“物理”目录。我要使用的是这种符号:

www
|___public_html(1)/dev(2)
|___laravel/public(1*)/dev(2)
|___laravel_dev/public(2*)

1 个答案:

答案 0 :(得分:1)

您应该仅在物理目录中进行链接。

struct

它给了我下面的目录/文件树

mkdir laravel{,_dev}
ln -s laravel public_html
ln -s ../laravel_dev laravel/dev

简单测试:

[Alex@Normandy so]$ tree
.
├── laravel
│   └── dev -> ../laravel_dev
├── laravel_dev
└── public_html -> laravel

请注意,您的网络服务器也可能有问题。