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

説明:$@スクリプトが何らかの引数付きで開始された場合、それらの引数が実際のバイナリに転送されることが保証されます。

関連情報