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


12

我正在这样做:

sudo ln s /etc/apache2/sites-available/LoginProject /etc/apache2/sites-enabled/LoginProject

我得到:

ln: target `/etc/apache2/sites-enabled/LoginProject' is not a directory

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

编辑:

该命令:

ls -l /etc/apache2/sites-enabled/LoginProject /etc/apache2/sites-available/LoginProject

输出:

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

编辑2:

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

$ls /etc/apache2/sites-enabled/
$

1
您可以添加ls -l /etc/apache2/sites-enabled/LoginProject /etc/apache2/sites-available/LoginProject输出吗?
Belmin Fernandez

当然,我在这里添加了它
fceruti

对于到达这里的任何人,如果发现此错误,但以上解决方案均无效,请执行以下操作:如果符号链接目录,请确保该目录在目标或名称上都没有斜杠。
谢里

Answers:


5

尝试: sudo a2ensite LoginProject

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


该文件为:/ etc / apache2 / sites-available / LoginProject无论如何,我尝试更改顺序,但没有成功
fceruti 2011年

抱歉,这是错误的,请参见编辑
xofer 2011年

谢谢!a2ensite LoginProject起作用了!没有尝试其他命令。还是很奇怪...我真的不明白
fceruti 2011年

通常,ln接受2个文件路径,如果路径多于两个,则目标必须是目录。我仍然想知道为什么它这样计数您的参数!
SparX

27

您可能ln -s从其他来源复制并粘贴了该命令,系统插入了错误类型的-。尝试删除,-然后再次手动键入。


1
你用这个答案救了我一天!好吧,半天。我花了另一半拔掉我的头发上的残余物,以弄清楚我做错了什么以及它想要从我那里得到什么目录。事实证明,我确实在行中有一个错误的破折号。
亚历山大·阿梅尔金

最好的最佳答案
教父

大!!!谢谢。
nano.galvao

6

问题是这之间的区别...

sudo ln s path1 path2

和这个...

sudo ln -s path1 path2

没看到区别吗?短划线与长划线。

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


2
您实际上可以在原始帖子中看到长划线。这就是答案。
Xalorous

3

尝试使用以下单个参数ln,看看是否有帮助,

cd /etc/apache2/sites-enabled/ ; sudo ln -s /etc/apache2/sites-available/LoginProject

2

尝试引用目录并终止sudo命令参数,如下所示:

sudo -- \ln s "/etc/apache2/sites-available/LoginProject" "/etc/apache2/sites-enabled/LoginProject"

不,这并没有解决问题
fceruti 2011年

进行了编辑。现在再试一次。
Belmin Fernandez 2011年

我复制粘贴并得到:ln:目标`/ etc / apache2 / sites-enabled / LoginProject'不是目录
fceruti

人。我被踩了。我只看到目标存在时。但是您的ls输出表明事实并非如此。想知道这是某种SELinux还是ACL问题。恩,您可以使用@fuscata的答案。
做得好

感谢您的时间,@ fuscata得到了一个解决方案,也许不是为什么会发生的答案,但是仍然……再次感谢
fceruti
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.