创建符号链接时出错

创建符号链接时出错

我正在尝试创建一个符号链接,但ln说它存在。我在 FTP 中看不到它,并且cd给我一个错误。

[root@vps82008 addons]# ln -s /root/sendsms/app/addons/sendsms /var/www/html/modul-cscart.com/public_html/app/addons
ln: failed to create symbolic link ‘/var/www/html/modul-cscart.com/public_html/app/addons/sendsms’: File exists
[root@vps82008 addons]# cd /var/www/html/modul-cscart.com/public_html/app/addons/sendsms
-bash: cd: /var/www/html/modul-cscart.com/public_html/app/addons/sendsms: No such file or directory

答案1

假设:/var/www/html/modul-cscart.com/public_html/app/addons/sendsms是一个目标不存在的符号链接。

cdNo such file or directory因为目标不存在。仍然是符号链接本身确实存在,这就是为什么lnFile exists。我想也许您的 FTP 服务器被配置为忽略无效或所有符号链接。

运行以下命令来验证假设:

ls -ld /var/www/html/modul-cscart.com/public_html/app/addons/sendsms

如果符号链接存在,只需将其删除,然后再继续ln -s …重新创建它(这次使用正确的目标);或使用ln -s -f …makeln覆盖它而不抱怨。

警告:删除或覆盖符号链接以外的其他内容可能会导致数据丢失。删除或覆盖符号链接会丢弃其目标的信息。确保您知道该文件到底是什么。除了上述ls -ld …命令之外,还可以使用file(如果可用):

file /var/www/html/modul-cscart.com/public_html/app/addons/sendsms

如果是这种情况,该工具应该明确告诉您链接已损坏。


我尝试复制该问题:

$ mkdir /tmp/test608752
$ cd /tmp/test608752
$ ls
$ ln -s foo bar
$ ln -s /tmp bar
ln: failed to create symbolic link 'bar': File exists
$ cd bar
-bash: cd: bar: No such file or directory
$ ls -ld bar
lrwxrwxrwx 1 kamil kamil 3 Sep 10 12:04 bar -> foo
$

相关内容