\r\n\r\n
コンピュータユーザーとして、ショートカットを定義するとしたら、ファイル、フォルダ、アプリケーションへのポインタと答えるのではないでしょうか?そうなんです。
しかし、この短い定義ではすべてを語ることはできません。すべてのショートカットは同じであり、同一ではないということです。ショートカットの種類はほぼ複数ありますね。以下、シンボリックリンクに注目する。シンボリックリンクやソフトリンクとも呼ばれ、ここではこれらの用語を互換的に使用することにします。
ここでは、シンボリックリンクとは何か、LinuxやmacOS、Windowsで作成する方法、この特殊なショートカットが必要な理由など、さまざまなことを説明します。
シンボリックリンクは、まさにショートカットファイルです。しかし、例えばプログラムのインストーラーをWindowsのデスクトップに置いて、プログラムを実行しやすくするような、一般的なショートカットとは異なります。
もちろん、どちらのショートカットもクリックすればリンク先のオブジェクトが開きますが、以下で説明するように、両者で動作が異なります。
標準のショートカットがオブジェクトを指す場合、シンボリックリンクはリンク先のオブジェクトが実際にそこにあるかのように見せます。コンピュータとそのアプリケーションは、シンボリックリンクをターゲットオブジェクトそのものとして読み取ります。
macOSでは、元のオブジェクトと同じ場所にシンボリックリンクを作成しようとすると、それを証明する「ファイルが存在します」というメッセージが表示されます。シンボリックリンクを別の場所に作成した後、同じ場所に移動しようとしても、コピーに名前が変更されます。
例えば、ハードディスクに特定のフォルダがあり、そのフォルダ自体をDropboxに移動させずにDropboxと同期させたいとします。
この場合、Dropboxのフォルダへのショートカットを作成しても意味がありません。ショートカットは作成したデバイスで動作します。ドロップボックスもショートカットを同期します。しかし、他のコンピューターから同期されたショートカットファイルにアクセスすると、そのファイルは無効、つまり、どこも指していないのです。
ショートカットがシンボリックリンクの場合は、この問題に直面することはありません。これは、Dropboxがシンボリックリンクを実際のフォルダとして読み取るため、そのフォルダのデータを同期させるためです。その後、元のフォルダがDropboxの一部でない場合でも、Dropboxの同期が有効なすべてのデバイスでフォルダとその内容にアクセスできます。
削除しても、それが通常のショートカットであろうとシンボリックリンクであろうと、元のオブジェクトに何ら影響を与えないことを覚えておいてください。
一般的には、希望する場合。
シンボリックリンクの使用例は他にもたくさんあるでしょう。
ソフトリンクは、ターミナルやコマンドラインを使って作成することができます。ターミナルをいじるのが苦手な方は、後ほどツールを使って直接作成しましょう。
Linuxでは、以下のターミナルコマンドを使用して、ファイルやフォルダーにシンボリックリンクを作成することができます。
ln -s [/path/to/file] [/path/to/symlink]macOSはLinuxなどのUNIX系OSなので、同じコマンドが適用されます。
コマンドの例として、上のスクリーンショットをご覧ください。
Linuxデスクトップ環境のネイティブ・ファイル・マネージャーでは、右クリックメニューからソフトリンクを作成することができますので、お使いのファイル・エクスプローラー・アプリケーションにこのオプションがあるかどうかを確認するとよいでしょう。
様々なLinuxディストリビューションにバンドルされている人気のファイルマネージャーNautilusには、Make Linkというメニューがありましたが、現在は消えています。しかし、Nautilusでは、CtrlキーとShiftキーを押しながら、シンボリックリンクを表示させたい場所に対象ファイルをドラッグすることで、シンボリックリンクを作成することができます。元のファイルは同じ場所にあるので、ご安心ください。
管理者権限でコマンドプロンプトのウィンドウを開き、以下のコマンドを入力してシンボリックリンクを作成する必要があります。
mklink [/path/to/symlink] [/path/to/file]ディレクトリへのシンボリックリンクの場合、/dフラグを使用してコマンドを若干調整する必要があります。
mklink /d [/path/to/symlink] [/path/to/file]コマンドラインを使いたくない場合は、linkshell Extensionというグラフィカルなツールを使って、シンボリックリンクを作成することができます。ファイル管理に最適なWindowsのファイルエクスプローラー拡張機能の一つです。
注意:システムは、シンボリックリンクの中にシンボリックリンクを作成することを妨げませんが、そうすることは避けた方がよいでしょう。そうしないと、無限ループが発生し、アンチウィルス・スキャナーなどのシステム全体のサービスに問題が発生する可能性があります。
macOSでエイリアスを作成したことがある方は、エイリアスがシンボリックリンクによく似た動作をすることにお気づきでしょう。どちらのタイプのショートカットも、リンク先のファイルやフォルダーのパス名を参照します。
エイリアスもinode(インデックス・ノード)と呼ばれる識別子を用いてリンク先のオブジェクトをマークする点が異なる。この識別子はオブジェクトに一意であり、ファイルシステムを通じてオブジェクトを追跡する。
このため、エイリアスの対象が別の場所に移動しても問題なく動作します。シンボリックリンクで試すと、エラーが発生します。(システムで保護されたファイルを扱っていない限り、エイリアスやシンボリックリンクそのものは問題なく移動できます)。
もちろん、どちらのショートカットも、元のファイルが削除されたり、上位のフォルダーの名前が変更されたりすると、使えなくなります。
エイリアスとシンボリックリンクの区別がつかないのは、エイリアスのファイル名からエイリアスのタグを削除してしまったから?
各ショートカットの「ファイルインスペクタ」または「情報を見る」パネルを開き、「一般」セクションのファイルサイズを確認します。もし、(zero bytes on disk)と表示されたら、シンボリックリンクを扱っていることになります。
このターミナルコマンドを使用すると、(カレントフォルダ内の)シンボリックリンクも自分自身で表示されるようになります。
ls -laこのコマンドは、Linuxでも実行でき、元のオブジェクトの場所へのシンボリックリンクが表示されます。
シンボリックリンクは、最初は戸惑うかもしれませんが、時間をかけて理解すれば、結局は簡単に使えることがわかりますよ。
Linuxのコマンドラインを利用するためのアプリケーションであるTermuxを使えば、Android上でシンボリックリンクを作成することも可能です。Google Driveのファイルをシンボリックリンクでより簡単に共有できることをご存知でしょうか?