Answers:
您缺少链接的名称,它应该是:
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
在当前目录中创建一个链接。在第三和第四的形式,创建链接到每个TARGET
在DIRECTORY
。默认情况下创建硬链接,使用创建符号链接--symbolic
。默认情况下,每个目的地(新链接的名称)都不应该存在4。创建硬链接时,每个硬链接TARGET
必须存在。符号链接可以包含任意文本;如果以后解析,则会相对于其父目录解释相对链接。长选项的强制性参数对于短选项也是必需的。
最终参数<link-name>
缺省为目标的最后一部分。因此,当目标是/path/dir
链接名称时,dir
如果未指定,则默认为。1如果你比如创建~/etc
具有mkdir ~/etc
然后运行ln -s /etc
中~
,因为该名称/目录已存在无法创建链接。3
并且您可以看到在主目录中创建的链接(这里以示例为例,您当然可以随意命名):
$ ls -l ~/root
lrwxrwxrwx 1 videonauth videonauth 1 Dez 14 00:28 root -> /
1 感谢@thomasrutter指出这一点。
2 另请参见man link
和man symlink
3 感谢@steeldriver提供了注释示例。
4 强调要指出的地方,因为它与问题有关。
ln -s /etc
起作用而不是这样?感谢您的回答,
/
可以是root或可以是路径组件,因此程序无法知道现在的含义。/etc
只是一条明确的可区分路径。
./
会一直存在- ./etc
不太可能。mkdir etc
先尝试,然后ln -s /etc
-您也将获得File exists
/some/dir
链接名称时,dir
如果未指定,则默认为。/
但是,当目标只是时,这将行不通。
File Exists
输出,@ steeldriver的解释听起来更合理。但这并不重要,因为这是简陋的案例
cd /
吗?还是您想创建一个链接,该链接将不断地反复进行?例如:cd root/home/terrance/root/home/terrance/root/home/terrance/root
。。。等