如何从内置 bin 重定向以执行 AppImage?

How do I redirect from a built-in bin to execute an AppImage instead?

场景:Ubuntu 18LTS 中 Kate 的当前版本指向他们的自定义版本(似乎不支持正则表达式搜索功能)。 bin 是:/usr/bin/kate

所需解决方案:运行 Kate AppImage(具有正则表达式 search/replace 功能)。 AppImage 目前位于 ~/Downloads.

问题:如何重定向系统以执行 Kate 的 AppImage 版本,而不是内置版本?

我可以简单地为 /usr/bin 中的 AppImage 创建一个 link 吗?

是的,看来你可以...即在我的例子中,我用指向 appimage 的 link 替换了现有的 kate bin:

# 1st remove the existing kate binary
# (cp kate somewhere first if you want to keep a copy)
sudo rm /usr/bin/kate

# 2nd create a link in the system bin that points to the appimage
sudo link [directory where the appimage resides]/Kate.AppImage /usr/bin/kate

完成!系统现在将在执行 'kate' 时执行 appimage(例如,通过上下文菜单)。

=========================

更新...

上面的解决方案有点管用...它 运行 appimage,但是通常传递给 kate 的参数(即要打开的文件)在硬盘 link.[=12 中丢失了=]

所以... 更好的 解决方案是创建一个简单的可执行 shell 脚本(在 /usr/bin 目录中命名为 'kate')执行 appimage:

#!/bin/sh
exec [directory where the appimage resides]/Kate.AppImage "$@"

这会将任何提供的参数传递给应用程序图像。

您可能希望(出于任何原因)在 /usr/bin/kate...

中保留系统安装的 Kate

那就别碰了。相反,在您的 $HOME 中创建一个名为 bin 的目录(它可能已经存在,具体取决于您 运行 的 Linux 发行版)。

在该目录中,创建一个符号链接:

ln -sf ~/Downloads/kate.AppImage ~/bin/kate

这可能已经奏效了。如果没有,您必须将 ~/bin 目录移动到路径的前面:

export PATH=${HOME}/bin:${PATH}  # if you use Bash

要永久修改此 $PATH,请将同一行添加到 ${HOME}/.bashrc