Mac でシンボリック リンク (Symlinks) を作成して使用する方法
公開: 2023-04-14ln -s /path/to/original /path/to/link
シンボリック リンクとも呼ばれるシンボリック リンクは、システム上の他の場所にあるファイルまたはディレクトリを指す特別なファイルです。 それらは高度なエイリアスと考えることができます。macOS でそれらを使用する方法は次のとおりです。
シンボリック リンクとは
ln コマンドでシンボリック リンクを作成する
シンボリック リンクを削除する方法
グラフィカル ツールを使用してシンボリック リンクを作成する方法
シンボリック リンクとは
macOS では、Finder で通常のエイリアスを作成できます。 エイリアスはファイルまたはフォルダーを指し、単純なショートカットに似ています。
シンボリック リンクは、ターミナルのコマンドライン ユーティリティを含む、システム上のすべてのアプリケーションで機能する、より高度なタイプのエイリアスです。 作成したシンボリック リンクは、単なるリンクであっても、それが指している元のファイルまたはフォルダーと同じようにアプリに表示されます。
macOS と Linux はどちらも UNIX に似たオペレーティング システムであるため、シンボリック リンクは Linux でのシンボリック リンクのように機能します。 PC ユーザーもシンボリック リンクを使用できますが、Windows でのシンボリック リンクの動作は少し異なります。
/Library/App にファイルを保存する必要があるアプリケーションがあり、システムの別の場所 (たとえば、/Volumes/App) に保存したいとします。 App ディレクトリを /Volumes/App に移動し、/Library/App で /Volumes/App を指すシンボリック リンクを作成できます。 プログラムは /Library/App のフォルダーにアクセスしようとし、オペレーティング システムはそれを /Volumes/App にリダイレクトします。
混乱している? 実際の例を見てみましょう。 代わりに外付けドライブに保存したい Mac のプライマリ パーティションのスペースを占有している多くの Steam ゲームがあるとします。 デフォルトでは、これらのファイルはたまたま「/Users/chris/Library/Application Support/Steam/steamapps」に保存されています。 まず、「steamapps」ディレクトリを「/Volumes/Data」というパス名を持つ「Data」という外部ドライブに移動します。
手順を完了するには、「/Users/tim/Library/Application Support/Steam/」ディレクトリ内のファイルの新しい場所 (「/Volumes/Data/steamapps」) を指すシンボリック リンクを作成します。 Steam やその他のプロセスにとって、シンボリック リンクは通常のフォルダのように見え、元のファイルが移動していないかのように見えます。 実際には、これらのファイルは別の場所に保存されており、シンボリック リンクは非常に説得力のある道しるべとして機能します。
これは、macOS オペレーティング システムと使用するアプリケーションに対して完全に透過的です。 便利なようにファイルを移動でき、内蔵ドライブの空き容量が限られている場合に特に便利です。 シンボリック リンクを移動すると、元のファイルを指すようになります。
「ソフト リンク」と呼ばれることもあるシンボリック リンクに加えて、代わりに「ハード リンク」を作成できます。 シンボリック リンクまたはソフト リンクは、ファイル システム内のパスを指します。 たとえば、/Users/example から /opt/example を指すシンボリック (またはソフト) リンクがあるとします。 ファイルを /opt/example に移動すると、/Users/example のリンクが壊れます。 ただし、ハード リンクを作成すると、実際にはファイル システムの基になる i ノードを指します。 したがって、/Users/example から /opt/example を指すハード リンクを作成し、後で /opt/example を移動した場合、どこに移動しても、/Users/example のリンクは引き続きファイルを指します。 ハード リンクは下位レベルで機能します。
何を使用すればよいかわからない場合は、通常、標準のシンボリック リンク (ソフト リンク) を使用する必要があります。 ハードリンクにはいくつかの制限があります。 たとえば、別のパーティションまたはディスク上の場所を指すハード リンクを 1 つのパーティションまたはディスク上に作成することはできませんが、標準のシンボリック リンクを使用することはできます。
ln コマンドでシンボリック リンクを作成する
Mac でシンボリック リンクを作成するには、ターミナル アプリを使用する必要があります。
Command+Space を押し、「Terminal」と入力してから「Enter」を押して、Spotlight 検索からターミナルを開きます。 [Finder] > [アプリケーション] > [ユーティリティ] > [ターミナル] に移動して、ターミナルを起動します。
次の形式でln
コマンドを実行します。 ディレクトリまたはファイルへのパスを指定できます。
ln -s /path/to/original /path/to/link
ここの-s
シンボリック リンクを作成するように ln コマンドに指示します。 ハード リンクを作成する場合は、 -s
を省略します。 ほとんどの場合、シンボリック リンクの方が適しているため、特別な理由がない限り、ハード リンクを作成しないでください。
これが例です。 ダウンロード フォルダを指すシンボリック リンクをデスクトップ フォルダに作成したいとします。 次のコマンドを実行します。
ln -s /ユーザー/名前/ダウンロード /ユーザー/名前/デスクトップ
リンクを作成すると、ダウンロード フォルダがデスクトップに表示されます。 これは実際に作成したシンボリック リンクですが、本物のように見えます。 このフォルダーには、ダウンロード フォルダーと同じファイルがすべて含まれているように見えます。 それは、ファイル システム上の同じ基本ディレクトリを指している異なるビューに過ぎないからです。
ファイル パスにスペースやその他の特殊文字が含まれている場合は、引用符で囲む必要があります。 したがって、デスクトップ上にユーザー ディレクトリ内の「My Files」という名前のフォルダーへのリンクを作成する場合は、次のようなコマンドが必要になります。
ln -s "/Users/name/My Files" "/Users/name/Desktop/My Link"
ファイルとディレクトリのパスをターミナルに入力しやすくするために、フォルダを Finder ウィンドウからターミナルにドラッグ アンド ドロップできます。 ターミナルは、そのフォルダーへのパスを自動的に入力します。 必要に応じて、パスも引用符で囲みます。
ユーザー アカウントがアクセスできないシステムの場所にシンボリック リンクを作成する必要がある場合は、次のように、 ln
コマンドの前にsudo
コマンドを付ける必要があります。
sudo ln -s /path/to/original /path/to/link
macOS の最新バージョンでは、システム整合性保護により、低レベルのファームウェア オプションを変更しないと、特定のシステムの場所に書き込むことができないことに注意してください。 この機能を無効にすることはできますが、無効にしないことをお勧めします。
関連: Mac でシステム整合性保護を無効にする方法 (および無効にすべきではない理由)
シンボリック リンクを削除する方法
他のタイプのファイルと同様に、シンボリック リンクを削除できます。 たとえば、Finder でシンボリック リンクを削除するには、シンボリック リンクを右クリック (または Control キーを押しながらクリック) し、コンテキスト メニューから [ゴミ箱に移動] を選択します。
rm
コマンドを使用して、コマンド ラインからリンクを削除できます。このコマンドは、他のファイルを削除するために使用するコマンドと同じです。 コマンドを実行し、削除するリンクへのパスを指定します。
rm /パス/へ/リンク
グラフィカル ツールを使用してシンボリック リンクを作成する方法
Finder はエイリアスを作成できますが、シンボリック リンクのようには機能しません。 エイリアスは、Windows のデスクトップ ショートカットのようなものです。 それらは真の透明なシンボリック リンクとして扱われません。
Finder でシンボリック リンクを作成するには、サードパーティのユーティリティまたはスクリプトが必要です。 右クリック (Control + クリック) Finder コンテキスト メニューにオプションをすばやく追加するには、オープンソース アプリ SymbolicLinker をお勧めします。
.DMG ファイルをダウンロードして開きます。 Finder で、[移動] > [フォルダへ移動] をクリックし、「~/Library/Services」と入力すると、ユーザー名の Services フォルダに移動します。 「SymbolicLinker.service」ファイルをこのフォルダーにドラッグします。
サービスをダブルクリックして実行し、[開く] をクリックして実行してもよいことを確認します。
右クリック (Control + クリック) の [サービス] メニューの下に [シンボリック リンクの作成] オプションが表示されます。
シンボリック リンクを好きな場所に移動すると、常に元のフォルダーを指すようになります。
以前にシンボリック リンクを使用したことがない場合は、シンボリック リンクを理解するのに少し時間がかかることがあります。 一度実行すると、通常のエイリアスではできないことが多いことを行うための強力なツールであることがわかります。
macOS には、生産性を向上させ、ワークフローをスピードアップし、コンピュータの使い方をより柔軟にする機能が満載です。 このチュートリアルが役に立った場合は、Automator とショートカットのワークフローを使用して画像のサイズを変更し、基本的な macOS ターミナル コマンドを理解し、いくつかの簡単なヒントで Mac の生産性を高めてください。
Homebrew を使用して、ターミナル経由で macOS ソフトウェアをインストールすることもできます。