SymLink работает только в том же каталоге

SymLink работает только в том же каталоге
user@laptop ~ $ sudo ln -s ~/Games/JA/openjk.i386 ~/Desktop/JA
user@laptop ~ $ readlink -f ~/Desktop/JA
/home/user/Games/JA/openjk.i386

Как вы видите, символическая ссылка указывает на файл, но когда я пытаюсь щелкнуть по ней, она не работает. Однако, если я помещаю символическую ссылку JA в тот же каталог, что и файл, на который она ссылается (в данном случае ~/Games/JA), она работает. Как мне заставить ее работать за пределами этого каталога ( Desktopнапример, в )?

решение1

Проблема, конечно, в том, что бинарный файл openjk.i386наверняка ожидает какие-то файлы в своей директории. Но бинарный файл предполагает, что его директория — ~/Desktop/, где требуемые файлы не найдены.

Я бы рекомендовал использовать очень маленький скрипт вместо символической ссылки. Например, это должно выглядеть так:

#!/bin/sh
cd /pathToBinary/
./binary $@

Назовите файл JA и сделайте его исполняемым с расширением chmod a+x JA.

Объяснение:Гарантируется $@, что если ваш скрипт запущен с какими-либо аргументами, они будут перенаправлены в реальный двоичный файл.

Связанный контент