我想创建一个指向/
我主目录中的根 ( ) 文件夹的符号链接。但是如果我尝试这样做,我会得到
~$ ln -s /
ln: failed to create symbolic link './': File exists
当然,我可以使用 Nautilus Ctrl+来做到这一点,所以我知道这是可能的。D
如何使用终端进行操作?
答案1
您缺少链接的名称,它应该是:
cd ~
ln -s / root
然后会在你的主目录中创建一个名为 root 的符号链接。因此正确的用法是:
ln -s <target> <link-name>
您看到的错误消息是,该链接./
始终存在,无法使用此名称创建链接,最好使用ln
命令2使用两个参数来防止错误链接。
从man ln
:
概要
(1st form) ln [OPTION]... [-T] TARGET LINK_NAME (2nd form) ln [OPTION]... TARGET (3rd form) ln [OPTION]... TARGET... DIRECTORY (4th form) ln [OPTION]... -t DIRECTORY TARGET...
描述
在第一个表单中,创建一个链接至
TARGET
名字LINK_NAME
. 在第二个表单中,创建一个链接至TARGET
在当前目录中。在第 3 和第 4 个表单中,创建指向每个TARGET
在DIRECTORY
. 默认创建硬链接,带有 的符号链接--symbolic
。默认情况下,每个目标(新链接的名称)不应已经存在4.创建硬链接时,每个TARGET
必须存在。符号链接可以保存任意文本;如果稍后解析,则相对链接将相对于其父目录进行解释。长选项的强制参数对于短选项也是强制的。
最后一个参数<link-name>
默认为目标的最后一部分。因此,当目标是链接名称时,如果未指定,则/path/dir
默认为。1例如,如果您使用创建,然后运行,则无法创建链接,因为名称/目录已经存在。3dir
~/etc
mkdir ~/etc
ln -s /etc
~
您可以在主目录中看到创建的链接(此处仅作为示例,当然您可以随意命名):
$ ls -l ~/root
lrwxrwxrwx 1 videonauth videonauth 1 Dez 14 00:28 root -> /
1 感谢@thomasrutter指出这一点。2
另 请参阅man link
和man symlink
3 感谢@steeldriver在评论中提供示例。4
强调 部分,使文本指出,因为它与问题相关。