你能向我解释一下#ln -s :“目标不是目录”吗?

fce*_*uti 13 linux bash

我这样做:

sudo ln –s /etc/apache2/sites-available/LoginProject /etc/apache2/sites-enabled/LoginProject
Run Code Online (Sandbox Code Playgroud)

我得到:

ln: target `/etc/apache2/sites-enabled/LoginProject' is not a directory
Run Code Online (Sandbox Code Playgroud)

/etc/apache2/sites-available/LoginProject 这是一个文件

编辑:

这个命令:

ls -l /etc/apache2/sites-enabled/LoginProject /etc/apache2/sites-available/LoginProject
Run Code Online (Sandbox Code Playgroud)

输出:

ls: cannot access /etc/apache2/sites-enabled/LoginProject: No such file or directory
-rw-r--r-- 1 root root 526 2011-09-27 18:40 /etc/apache2/sites-available/LoginProject
Run Code Online (Sandbox Code Playgroud)

编辑2:

$ls /etc/apache2/sites-available/
default  default-ssl  LoginProject
$

$ls /etc/apache2/sites-enabled/
$
Run Code Online (Sandbox Code Playgroud)

小智 30

您可能ln -s从另一个来源复制并粘贴了该命令,并且系统插入了错误类型的-. 尝试删除-并再次手动输入。

  • 你用这个答案拯救了我的一天!嗯,半天。我花了另一半时间拔掉我的头发,试图弄清楚我做错了什么以及它想要我的目录。事实证明,我确实在这条线上有一个错误的破折号。 (2认同)

Chr*_*ach 7

问题是这两者的区别...

sudo ln –s path1 path2
Run Code Online (Sandbox Code Playgroud)

和这个...

sudo ln -s path1 path2
Run Code Online (Sandbox Code Playgroud)

没看出区别?短划线与长划线。

长破折号不被解释为选项,因此ln在命令行上看到三个路径,并期望最后一个是目录。

  • 您实际上可以在原始帖子中看到长破折号。这就是答案。 (2认同)

xof*_*fer 5

尝试: sudo a2ensite LoginProject

你也可以这样做 sudo ln –s /etc/apache2/sites-available/LoginProject /etc/apache2/sites-enabled/