softlink to binary始终使用主文件夹路径(而不是当前文件夹)

时间:2017-07-09 06:23:46

标签: linux bash symlink appimage

kdevelop提供了这个AppImage二进制文件:

wget -O KDevelop.AppImage https://download.kde.org/stable/kdevelop/5.1.1/bin/linux/KDevelop-5.1.1-x86_64.AppImage
chmod +x KDevelop.AppImage
./KDevelop.AppImage

效果很好。所以我想在kd中为该二进制文件创建一个名为/usr/bin的软链接,例如:

/usr/bin/sudo ln -s KDevelop-5.1.1-x86_64.AppImage kd

现在,如果我运行kd file1,我希望它会在当前文件夹中打开文件名file1,但它总是会尝试打开我的主页文件夹中的文件名file1 - 不在应有的位置。

有没有办法解决这个问题?

1 个答案:

答案 0 :(得分:1)

一些可能的原因:

  • 应用程序始终假定您要在主目录中打开文件,有效地或字面上将$HOME添加到路径中。这将是任何* nix程序中的 bug ,应该报告。
  • $(basename "$0")不是KDevelop.AppImage@Scheff said)时,应用程序的行为会有所不同。
  • 您实际上正在运行不同的 kd

可能的解决方法/调查:

  • 在命令行上传递完整路径到文件。如果它试图打开/ home / you // full / path / you /提供它显然是错误的,并且你有一个测试用例。如果没有,那么$PWD实际上可能会有一些问题。在运行之前尝试检查它的值。
  • 使用sudo ln -s KDevelop-5.1.1-x86_64.AppImage /usr/bin同名的符号链接,然后尝试运行它。如果它的行为相同,那么至少证明符号链接不是问题。
  • 运行type -a kd并验证您的/ usr / bin / kd是否首先出现。如果不存在,则可能存在内置的别名或shell优先。

那就说实际的错误信息是什么?