找不到软链接,即使它很明显

时间:2017-08-24 09:31:35

标签: linux bash macos symlink

首先,我创建了一个指向可执行文件mesher的软链接,我确认它确实在那里:

[me@mine mesh_subdir] ln -s mesher ../mesher
[me@mine mesh_subdir] cd ../
[me@mine project_home] ls
file1 file2 mesher

似乎很好。

现在,我想执行mesher

[me@mine project_home] ./mesher
-bash: ./mesher: No such file or directory

为什么呢?我清楚地在mesher中看到了文件project_home。我还尝试按Tab键两次查看所有选项,mesher永远不会出现。同时,catfile1 file2正常工作。

为什么我的文件系统中找不到mesher,我该怎么办?

(它是OS X Sierra上的bash shell。)

2 个答案:

答案 0 :(得分:1)

因为它是相对于目标创建的:

ln -s dirname/mesher ../mesher

也是ls -l显示断开的链接

cd ..
ls -l mesher

答案 1 :(得分:1)

符号链接可以有相对路径。 行-1 < 'A' 表示&#34;在ln -s mesher ../mesher中创建符号链接到当前目录中名为../mesher的文件。现在,当您执行mesher时,当前目录会更改 - 更改链接的目标。

尝试使用cd ..代替ls -l mesher,您会看到问题:ls符号链接指向自身。

而是反过来尝试:从符号链接所在的目录链接:

mesher

顺便说一下,如果源和目标具有相同的名称,您可以省略链接的名称:cd .. ln -s mesh_subdir/mesher mesher 就足够了。