Watch

Mac OS Xのコマンドラインでシンボリックリンクを作成する方法

Mac OS Xのコマンドラインでシンボリックリンクを作成する方法

OS Xのターミナルコマンドラインで作成されたシンボリックリンクは、ファイルシステム内のリンクされたオブジェクトが別の場所にある元のオブジェクトを指すことを可能にします。このように、シンボリックリンクはMac OS X GUIのエイリアスとほぼ同じように動作しますが、ファイルまたはフォルダ間のリンクと参照はより低レベルで行われるため、様々なアプリケーションやユーザーの目的から直接参照することができます。これは、特定の場所へのアクセスを容易にしたり、アプリケーションフォルダを別のハードドライブにオフロードしたりするなど、Macの上級ユーザーにとって多くの状況で役立ちます。


Mac OS Xのコマンドラインでシンボリックリンクを作成・設定するには、lnコマンドに-sフラグを付けて使用します。-sフラグを付けないとハードリンクが設定されてしまいますが、これはここでの目的ではありません。まずはターミナルを起動してください。

シンボリックリンクの作成方法

シンボリック リンク (またはソフト リンク) を作成するための基本的な構文は次のとおりです。

ln -s /path/to/original/ /path/to/link

これは、/path/to/link を元の場所(この場合は /path/to/original/)にポイントします。

ターミナルでソフトリンクを作成するための構文例

たとえば、ユーザーのダウンロード フォルダーに、別のマウントされたドライブ上のディレクトリにリンクするシンボリック リンクを作成する場合、構文は次のようになります。

ln -s /Volumes/Storage/Downloads/ ~/Downloads/

これにより、アクティブユーザーの ~/Downloads/ フォルダが、「Storage」というマウントされたドライブ上の「Downloads」というディレクトリにリンクされます。このようなディレクトリとドライブが存在する場合、通常はユーザーのダウンロードフォルダに表示されるすべてのファイルが、マウントされた別のボリュームに移動されるようになります。つまり、ストレージの負荷を別のドライブにオフロードしながらも、ユーザーにとっては ~/Downloads/ フォルダの外観を維持できます。前述のように、これはエイリアスのように動作します。

別の例としては、コマンドを/usr/sbin/にリンクすることで、埋もれてしまったバイナリへのアクセスを容易にすることが挙げられます。

sudo ln -s /A/Deeply/Buried/Path/ToApp.framework/Resources/command /usr/sbin/commmand

これにより、ユーザーはコマンド実行の前にパス全体を付ける必要がなく、「command」と入力してバイナリにアクセスできるようになります。

ソフトリンクには様々な用途があり、OSXDailyを長年読んでいる読者であれば、他の記事でソフトリンクについて触れたことがあるはずです。例えば、強力なAirportコマンドへのアクセスを容易にしたり、マウントされたNTFSボリュームをデスクトップに配置したり、ローカルのiTunes iPhoneバックアップフォルダを外付けドライブに移動したり、レトロなMac OSのようにユーザーのデスクトップにゴミ箱アイコンを追加したり、アプリケーションキャッシュフォルダをRAMディスクに配置して超高速データアクセスとキャッシュを実現したりといった用途が挙げられます。実用的な用途は無数にあり、シンボリックリンクの作成はどのUnix OSでも機能するため、Mac OS Xだけでなく、LinuxやFreeBSDにも同じアイデアを適用できます。

シンボリックリンクを削除する方法

もちろん、作成したシンボリックリンクは、いつか元に戻す必要が出てきます。rmコマンドを使うか、以下の「unlink」コマンドを使えば簡単に元に戻せます。

rm /path/to/symlink

または

unlink /path/to/symlink/

本質的には、これは元のアイテムへのシンボリック リンクを参照する小さなファイル (これもエイリアスのような) を削除することです。

シンボリック リンクのリンクを解除しても、定義されたリンク以外のファイルやフォルダーは削除されず、リンクされた項目から元の項目への参照が削除されるだけです。

シンボリックリンクの特に素晴らしい使い方やコツをご存知ですか?ぜひコメント欄で教えてください!