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