首先,我创建了一个指向可执行文件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
永远不会出现。同时,cat
和file1
file2
正常工作。
为什么我的文件系统中找不到mesher
,我该怎么办?
(它是OS X Sierra上的bash shell。)
答案 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
就足够了。