メインコンテンツへスキップ
  1. ノート/
  2. Linux/

シンボリックリンクと.desktopアイコンの違い

ICE345
著者
ICE345
CS Student | System | Linux | OCaml

Linuxで「ショートカット」と呼ばれるものには、ファイルシステムのリンクと、デスクトップ環境のアプリケーション起動定義があります。代表的なのがシンボリックリンクと.desktopファイルです。

1. シンボリックリンク
#

シンボリックリンクは、ファイルやディレクトリへのパスを保存する特殊なファイルです。ln -sで作成し、ターミナルやスクリプトから別のパスとして利用します。

sudo ln -s /opt/myapp/myapp_executable /usr/local/bin/myapp

これで、/opt/myapp/myapp_executableを毎回入力せず、次のように実行できます。

myapp
ls -l /usr/local/bin/myapp

/usr/local/binPATHに含まれていれば、シェルはこのリンクをコマンドとして見つけられます。

シンボリックリンクはファイルシステムの機能であり、アイコン、表示名、カテゴリ、引数入力画面などのGUI情報は持ちません。リンク先を移動・削除すると、リンクが壊れることがあります。

2. .desktopファイル
#

.desktopファイルは、Linuxデスクトップ環境がアプリケーションをメニューやランチャーへ登録するための定義ファイルです。実行ファイルのパスに加えて、表示名、説明、アイコン、カテゴリ、端末で実行するかどうかなどを記述できます。

ユーザー単位で登録する場合は、通常~/.local/share/applications/へ保存します。

mkdir -p ~/.local/share/applications
nano ~/.local/share/applications/myapp.desktop

内容の例は次のとおりです。

[Desktop Entry]
Version=1.0
Type=Application
Name=MyApp
Comment=My custom application
Exec=/opt/myapp/myapp_executable
Icon=/opt/myapp/myapp_icon.png
Terminal=false
Categories=Utility;

保存後、必要に応じて実行権限を付けます。

chmod +x ~/.local/share/applications/myapp.desktop

アプリケーションメニューを開き、MyAppを検索して起動します。デスクトップへ直接表示する方法はデスクトップ環境によって異なります。GNOMEなどでは、デスクトップへコピーした後に「起動を許可」する操作が必要になる場合があります。

3. 主な違い
#

項目シンボリックリンク.desktopファイル
主な役割ファイルやディレクトリへの別名を作るGUIからアプリケーションを起動する定義を作る
利用場所ファイルシステム、シェル、スクリプトアプリケーションメニュー、ランチャー、デスクトップ
作成方法ln -s.desktop形式のテキストを作成
アイコン持たないIcon=で指定できる
引数・端末設定持たないExec=Terminal=などで指定できる
GUIの必要性必要ないデスクトップ環境で利用する

4. /usr/local/binにリンクを置く理由
#

/usr/local/binは、ディストリビューションのパッケージ管理下にないローカルのプログラムやスクリプトを置くための標準的なディレクトリです。多くのLinux環境でPATHに含まれているため、ここにリンクを置くと絶対パスを入力せずに実行できます。

echo "$PATH"

/bin/usr/binへ個人用プログラムを直接置くと、パッケージ管理やシステム更新と競合する可能性があります。ローカルに管理するプログラムは、/usr/local/binまたはユーザー用の~/.local/binへ置く方が安全です。

5. 使い分け
#

  • ターミナルやスクリプトで短い名前から実行したい場合は、シンボリックリンクを使う。
  • アプリケーションメニューへ表示し、アイコンや説明を付けて起動したい場合は、.desktopファイルを使う。
  • 同じアプリケーションに対して、シンボリックリンクと.desktopファイルを同時に作ることもできる。

両者は似た「ショートカット」に見えますが、シンボリックリンクはファイルシステムの仕組み、.desktopファイルはデスクトップ環境のアプリケーション登録情報です。


评论