这里是新手。我正在学习ln
指挥。因此,我在另一个目录 bar 中创建了一个指向文件 foo.txt 的符号链接。
ln -s foo.txt bar
当我尝试访问时bar/foo.txt
,出现错误“符号链接级别过多”。谁能多解释一下符号链接吗?我试图做的事情是不可能的,还是有其他方法可以实现它?基本上我想要一个指向目录 bar 中 foo 的链接,该目录与 foo 位于同一目录中。
directory
|__foo.txt
|__bar
|__(link to foo.txt)?
符号链接目标存储为原始路径(因此是“符号”链接)。默认情况下,当您使用
ln -s
目标路径时,它是按字面存储的——它不是相对的,而是按照您指定的方式存储的。因此,必须将相对路径指定为相对于链接位置,而不是相对于当前位置:
因为链接在
bar/
,链接就会通向bar/../foo.txt
。cd
如果您首先找到链接所在的位置(因为链接的位置和您当前的位置将相同),那么创建相对链接会容易得多。在最近的 Linux 上,该
ln
命令有一个附加-r
选项来简化此操作并按照您期望的方式创建相对链接:(请注意,执行此操作后,链接的目标将自动
../foo.txt
再次变为。)在 Linux 上,您可以尝试使用该
namei
命令来直观地了解如何遵循特定路径(包括符号链接)。