问题描述
我正在尝试在我的主目录中创建一个符号链接到我的数据分区上的目录和文件。我试过了:
~/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
应该管用。请注意:
-
如果
~/Documents/saga
存在且不是目录,您也会遇到错误; -
如果
~/Documents/saga
存在且是目录,则符号链接将为~/Documents/saga/saga..doc
(你确定双点吗?) -
如果
~/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
这是我预期的工作。