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

问题描述 投票:1回答:1

我通过使用以下命令将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*)
laravel bash symlink ln
1个回答
0
投票

您应该只在物理目录中建立链接。

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

简单测试:

[Alex@Normandy so]$ echo "test dev" > laravel_dev/test
[Alex@Normandy so]$ cat public_html/dev/test 
test dev

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

© www.soinside.com 2019 - 2024. All rights reserved.