我正在尝试在我的 CentOS 5.6 机器上设置一个符号链接来dev_crmpicco/
指向~/vhosts/dev/dev_crmpicco/web/
我正在使用以下命令:
[crmpicco@devel dev]$ ln -s ~/vhosts/dev/dev_crmpicco/web/ dev_crmpicco/
但是,我收到此错误:
ln: creating symbolic link `dev_crmpicco/web' to `/home/crmpicco/vhosts/dev/dev_crmpicco/web/': File exists
我知道该文件存在,因为我想dev_crmpicco/
指出它。
基本上,我的 DOCROOT 曾经在,dev_crmpicco/
但现在它全部移动到一个web/
目录中,我不想四处更改我的所有 Apache 配置,如果可能的话,我宁愿通过符号链接来完成它。
答案1
您应该检查dev_crmpicco/web
先前尝试链接(或复制而不是移动)是否存在。如果它存在(无论是文件、链接还是目录),您必须将其删除,因为这是您的命令尝试创建的内容。
检查后尝试:
ln -s ~/vhosts/dev/dev_crmpicco/web/ dev_crmpicco
/
没有@Johan 建议的尾随。
答案2
如果您明确指定一个目录作为目标(例如,通过在 后面提供尾随/
,dev_crmpicco/
就像您在示例中所做的那样),则将在该目录内以相同的名称(本例中为 web)创建链接(缺少的目录是在这种情况下会出错)
ln -s 路径/目标链接/
将创造
链接/目标 -> 路径/目标
dev_crmpicco
如果您想成为原始链接,请勿提供尾部斜杠。在这种情况下,链接将被命名dev_crmpicco
,如果存在具有该名称的文件或目录,则会出现错误。
无论哪种方式,您都必须在创建链接之前重命名或删除现有文件/目录。
ln -s 路径/目标链接
将创造
链接 > 路径/目标