Linux でシンボリック リンク (シンボリック リンク) を作成する方法


Linux にはショートカットはありませんが、シンボリック リンク (通常はシンボリック リンクと呼ばれます) があります。しかし、シンボリック リンクとは正確には何でしょうか?そして、どうやって作成するのでしょうか?調べてみましょう。

Ubuntuのインストール でコマンドを試しますが、構文は すべての Linux ディストリビューション でも同じように機能します。興味深いことに、シンボリックリンクは Mac PC でも作成できます です。

シンボリック リンクとは何ですか?

複数の場所からファイルにアクセスできるようにしたい場合、単にファイルをコピーするだけでは良い解決策とはなりません。複数のファイルが存在するため、変更の追跡が困難になるだけでなく、ディスク領域を無駄にしていることになります。

GUI ベースのオペレーティング システムでは、ショートカットを作成することでこの問題を解決します。 CUI ベースの OS (任意の Linux ディストリビューション など) の場合、答えはシンボリックリンクです。 Microsoft Windows でも いくつかの状況 ではシンボリックリンクを利用できます。

シンボリックリンクまたはシンボリックリンクは、完全に異なるファイルシステムまたはパーティションにある場合でも、別のファイルまたはディレクトリを指す単なるファイルです。シンボリックリンクを開くと、同じ元のファイルにアクセスでき、変更はメイン ファイルにも反映されます。

これはパーミッションにも当てはまります。chmod を使用してシンボリックリンク ファイルのパーミッションを変更すると、実際にはターゲット ファイルのパーミッションが変更されます。

シンボリックリンクの種類

シンボリック リンクはソフト リンクとも呼ばれます。名前が示すように、Linux のファイル リンク システムはこれだけではありません。ハード リンクは、特定のシナリオでシンボリック リンクの代替として使用できますが、多くの制限があります。

まず、ハード リンクは、同じ i ノード を指す単なるファイル名です。これにより、ストレージとアクセス速度の点で非常に効率的になりますが、同じファイル システムまたはパーティション内のファイルに制限されます。また、Linux でのフォルダー アクセスの仕組み の癖により、ディレクトリにハード リンクも使用できません。

一方、

ソフト リンクまたはシンボリック リンクは、デスクトップのショートカットに似ています。各ソフト リンクは基本的に、元のデータを指す小さなファイルですが、実際には直接リンクされていません。つまり、ソフト リンクは、他のパーティションやファイル システム上のファイルやディレクトリも制限なく簡単にポイントできるということです。

ハード リンク VS ソフト リンク - どちらのタイプを使用しますか?.

ソフト リンクは、複数のファイル システムにわたるファイルとディレクトリの両方で制限なく使用できるため、最も汎用性の高いリンク形式です。しかし、なぜハードリンクがあるのでしょうか?シンボリックリンクよりも利点はありますか?

理論的には、ハードリンクの方が効率的です。これらは同じ i ノードを使用するため、追加のディスク領域を占有せず、ソフト リンクよりもはるかに高速にアクセスできます。これが、多くのシステム管理者が可能な限りハード リンクを使用することを推奨する理由です。

とはいえ、シンボリック リンクを使用するデメリットは最小限です。最近のコンピューターは特に、数キロバイトの追加ストレージをあまり気にせず、システムを何百万ものソフト リンクで埋め尽くしていない限り、追加のファイル サイズが問題になることはほとんどありません。

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

シンボリック リンク (一般にファイル リンク) は、ln コマンドを使用して作成されます。デフォルトでは、コマンドはハード リンクを作成します。シンボリック リンクを作成するには、ln コマンドに -s フラグを追加する必要があります。

構文は非常に単純です。 ln コマンドは 2 つのパラメータを取ります。リンク先のファイル (またはフォルダ) のパスと、作成されるリンク ファイルのパスです。

このように:

ln -s user_names.txt 名

これにより、user_names テキスト ファイルに接続された names というシンボリックリンクが作成されます。シンボリック リンクが実際に作成されたかどうかを確認するには、ls コマンドを使用します。

ご覧のとおり、Ubuntu ではファイルのカテゴリごとに異なる色が表示され、ディレクトリは濃い青、シンボリックリンクは明るい青 (実際にはシアン) で示されます。

同じ構文を使用して、フォルダーのシンボリックリンクを作成することもできます。

ln -s の例 example_folder

他のディレクトリ内のファイルやフォルダーへのシンボリックリンクを作成するには、そのフルパスを使用するだけです。例:

ln -s 例/example3.txt distance_example

シンボリックリンクの制限

シンボリック リンクは、コピーを作成せずにシステム全体でファイルを接続する優れた方法ですが、独自の制限があります。はい、ソフト リンクはハード リンクより制限が緩いとはいえ、留意すべき点がいくつかあります。.

まず、ln コマンドは作成されたリンクを実際には検証しません。つまり、実際には存在しないファイル名を入力してもエラーは発生しません。リンクを確認する唯一の方法は、リンクを使用してみて、正しいファイルにアクセスできるかどうかを確認することです。

第 2 に、シンボリックリンクにアクセスしたり、そのアクセス許可を変更すると、元のファイルのプロパティが変更されますが、ファイルの削除には同じことが当てはまりません。リンクされたファイルやディレクトリに影響を与えることなく、安全にシンボリックリンクを削除する できます。

Linux でのシンボリックリンクの作成

ターミナルを使用してシンボリック リンクを作成する際の最大の問題は、さまざまなディレクトリに分散している重要なファイルにアクセスするのが難しいことです。賢い解決策は、デスクトップ ショートカットなど、ホーム ディレクトリ自体からそのようなファイルへのシンボリック リンクを作成することです。

また、ハード リンクとは異なり、シンボリック リンクは、異なるパーティションやファイル システムにあるディレクトリやファイルに接続する場合でも、制限なく簡単に作成できます。これは、シンボリックリンクが存在しないファイルを指している可能性があることも意味することに注意してください。ファイルが存在するかどうかを確認するには、リンクにアクセスしてみる必要があります。

.

関連記事:


10.05.2023