我从scilab-6.1.0.bin.linux-x86_64.tar.gz中下载了“Scilab”官方网站,因为我希望能够使用所提供的工具。
在下载文件的bin目录中,我有以下文件
$ ls -l | cut -d ' ' -f 5-
1713591 Feb 25 05:27 modelicac
2057719 Feb 25 05:27 modelicat
44563 Feb 25 05:27 scilab
6 Feb 25 05:27 scilab-adv-cli -> scilab
24741 Feb 25 05:27 scilab-bin
6 Feb 25 05:27 scilab-cli -> scilab
20725 Feb 25 05:27 scilab-cli-bin
44563 Feb 25 05:27 scinotes
44563 Feb 25 05:27 xcos
675942 Feb 25 05:27 XML2Modelica
$ test -L scilab-adv-cli && test -L scilab-cli && echo $?
0正如我们所看到的,scilab-cli和scilab-adv-cli都是指向scilab的符号链接。执行scilab-cli、scilab-adv-cli和scilab会产生不同的结果(参见下面的gif )

指向可执行的(B)的符号链接(A)不是应该执行(B)吗?
在上述场景中,scilab-cli和scilab-adv-cli为(A),scilab为(B)。
发布于 2020-05-05 09:57:46
运行指向可执行文件的符号链接确实会运行可执行文件,但是有一个重要的区别:给新进程的第一个参数(在本例中)存储给定的命令,给出符号链接的名称,而不是目标可执行文件的名称。这允许程序根据调用的方式来实现不同的行为。
在您的系统上可能安装的一个常见实例是apropos:它通常(至少在Linux系统上)是指向whatis的符号链接,但这两个命令的行为不同。
在您的例子中,当scilab以scilab-cli的形式运行时,它会显示它的文本模式界面;当它以scilab的形式运行时(就像您的realpath方法一样),它会启动它的GUI。
https://unix.stackexchange.com/questions/584654
复制相似问题