这个符号链接怎么没有被遵循?

这个符号链接怎么没有被遵循?

我的 OpenSuSE 系统上安装了 LibreOffice Writer 和 OpenOffice Calc。这可以说并不理想,但在我完全切换到其中之一之前,我注意到oocalc file.ods从命令行调用时出现了一些奇怪的行为。

user@host:~> ooffice -calc
Warning: -calc is deprecated.  Use --calc instead.
user@host:~> oocalc
Warning: -calc is deprecated.  Use --calc instead.
user@host:~> which oocalc
/usr/bin/oocalc
user@host:~> readlink -f `which oocalc`
/opt/openoffice4/program/scalc
user@host:~> /usr/bin/oocalc
Warning: -calc is deprecated.  Use --calc instead.
user@host:~> ls -lth /usr/bin/oo*
lrwxrwxrwx 1 root root 30 Jan 30 17:32 /usr/bin/oocalc -> /opt/openoffice4/program/scalc
-rwxr-xr-x 2 root root 55 Dec 19 18:06 /usr/bin/ooffice
-rwxr-xr-x 2 root root 66 Dec 19 18:06 /usr/bin/oofromtemplate
-rwxr-xr-x 2 root root 60 Dec 19 18:06 /usr/bin/ooweb
-rwxr-xr-x 2 root root 63 Dec 19 18:06 /usr/bin/oowriter
user@host:~> readlink -f `which oocalc`
/opt/openoffice4/program/scalc
user@host:~> /opt/openoffice4/program/scalc

上述命令的最后一个按预期运行 OpenOffice Calc。执行oocalc或时ooffice -calc,它会打印弃用警告,然后实际打开 LibreOffice作家,因为未安装其对应的电子表格。不过,我的问题是如何oocalc正确解析符号链接但不遵循它,而是执行它ooffice -calc

编辑: 其内容/opt/openoffice4/program/scalc如下:

cmd=$(cd `dirname $0` && pwd)/soffice
exec "$cmd" -calc "$@"

相关内容