如果我想创建符号链接,这种情况经常发生:我收到错误消息Too many symbolic links
。这是什么意思,为什么我只能在我想创建符号链接的目录中解决这个错误?
例如:
cd /foo/bar
/foo/bar: sudo ln -s /some/dir /foo/bar
这行得通。
这给了我错误:
cd ~
~: sudo ln -s /some/dir /foo/bar
如果我想创建符号链接,这种情况经常发生:我收到错误消息Too many symbolic links
。这是什么意思,为什么我只能在我想创建符号链接的目录中解决这个错误?
例如:
cd /foo/bar
/foo/bar: sudo ln -s /some/dir /foo/bar
这行得通。
这给了我错误:
cd ~
~: sudo ln -s /some/dir /foo/bar
/foo/bar
您的示例显示您在尝试创建符号链接之前更改到目录。因此/foo/bar
已经存在,作为目录或指向另一个目录的符号链接。然后你的命令:
ln -s /some/dir /foo/bar
尝试创建/foo/bar
一个链接到/some/dir
. 这一定会失败,因为/foo/bar
已经存在。看来您在命令中交换了文件/目录参数。要创建与 的链接
ln -s
,第一个文件/目录必须存在,第二个不能存在。(这很像 cp 命令)对于您的核心问题,您不必在任何特定位置即可成功创建符号链接。该
ln -s
命令可以采用到源或目标(或两者)的完整路径,也可以采用相对路径。只要您有权在目标的父目录中创建链接,就可以创建它,而您的工作目录不在任何一个路径中。这可能是由于较早使用
ln
. 你可能搞砸了目标。例如,这将导致错误。
或者更模糊的旧形式