![创建符号链接时出错](https://linux22.com/image/179907/%E5%88%9B%E5%BB%BA%E7%AC%A6%E5%8F%B7%E9%93%BE%E6%8E%A5%E6%97%B6%E5%87%BA%E9%94%99.png)
我正在尝试创建一个符号链接,但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
是一个目标不存在的符号链接。
cd
说No such file or directory
因为目标不存在。仍然是符号链接本身确实存在,这就是为什么ln
说File 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
$