当前位置: 首页>>技术问答>>正文


什么是“未能创建符号链接:文件存在”错误?

,

问题描述

我正在尝试在我的主目录中创建一个符号链接到我的数据分区上的目录和文件。我试过了:

~/Documents$ ln -sv ~/Documents/saga /media/mariajulia/485f3e29-355c-4be3-b80a-1f5abd5604b6/mariajulia/Downloads/saga..doc

在我的home文件夹中的Documents目录中创建一个名为saga的符号链接。终端输出是:

ln: failed to create symbolic link ‘/media/mariajulia/485f3e29-355c-4be3-b80a-1f5abd5604b6/mariajulia/Downloads/saga..doc’: File exists

我用ls -a检查~/Documents的含量,只有...。一般来说,我的home文件夹是空的,它只是一个全新的系统安装。

最佳解决方法

这是一个经典错误……反过来说:

ln -s Existing-file New-name 

所以在你的情况下

ln -sv /media/mariajulia/485f3e29-355c-4be3-b80a-1f5abd5604b6/mariajulia/Downloads/saga..doc ~/Documents/saga 

应该管用。请注意:

  1. 如果~/Documents/saga存在且不是目录,您也会遇到错误;

  2. 如果~/Documents/saga存在且是目录,则符号链接将为~/Documents/saga/saga..doc(你确定双点吗?)

  3. 如果~/Documents/saga不存在,则符号链接将为~/Documents/saga(因为它是,没有扩展名)。

次佳解决方法

由于@Rmano在他的answer中回应,所以参数的顺序错误。我经常犯同样的错误。于是我发现了一个

Fool-proof方式创建符号链接

首先进入要创建链接的目录

cd ~/Documents/saga

然后使用单个参数创建链接。

ln -s /very/long/path/to/target/Downloads/saga..doc

这将创建一个指向当前目录的链接,其名称与目标相同。

第三种解决方法

重定向时我有相同的错误消息

ln -s /usr/bin/nodejs /usr/bin/node

从node.js v0.10.25到node.js v4.2.3所以我看看man ln并使用

[OPTION] 
-f, --force
          remove existing destination files

这是我预期的工作。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/1930.html,未经允许,请勿转载。