リンクは別のファイルへの参照です。リンクは同じファイルに複数の名前を付け、2つ以上の場所に同時に存在できるようにします。
リンクには2つのタイプがあります:
- ソフトリンクまたはシンボリックリンク:これは、元のファイルへのショートカットにすぎません。
- ハードリンク:これは、元のファイルのメモリ位置を指します。
この写真は、2種類のリンクがどのように機能するかを示しています。

ハードリンクとソフトリンクの両方がlnコマンドで作成されます。
このチュートリアルでは、lnコマンドを使用してLinuxでさまざまなタイプのリンクを作成する方法を紹介します。
lnコマンドの例
lnコマンドの構文は単純です:
ln [option] target_file link_name
lnコマンドを使用してLinuxでリンクを作成する例をいくつか紹介します。
1。ファイルへのハードリンクを作成する
ファイルへのハードリンクを作成するには、次のようなオプションなしでlnコマンドを使用できます。
ln target_file link_name

2。ファイルへのソフトリンクを作成する
ファイルへのシンボリックリンクを作成するには、オプション-s
を使用します ターゲットファイル名とリンク名
ln -s target_file link_name

ほとんどのLinux端末では、ソフトリンクがポイントする宛先とともに異なる色で表示されます。
また、リンクがl
で始まることにも気付くでしょう。 通常の-
の代わりに 長いリストビューのファイルの場合。
端末に異なる色のソフトリンクが表示されていない場合でも、この方法でリンクを識別できます。
3。ディレクトリへのソフトリンクを作成する
ディレクトリへのソフトリンクを作成することは、ファイルへのシンボリックリンクを作成することと同じです。ターゲットファイル名/パスをディレクトリ名/パスに置き換えるだけです。
ln -s target_directory link_name

Linuxターミナルでは、通常、ソフトリンクとハードリンクの色が異なることに気付くでしょう。ディレクトリへのハードリンクは(通常は)不可能です。
4。既存のソフトリンク(またはハードリンク)を更新する
既存のリンクを上書きできます。デフォルトでは、既存のリンクを使用して新しいファイルをポイントしようとすると、エラーがスローされます:
ln: failed to create symbolic link 'soft-link-to-file': File exists
lnコマンドには、この目的のために2つのオプションがあります。
-
-i
:インタラクティブモードでは、既存のリンクを上書きするかどうかを尋ねられます。 -
-f
:強制モードは、確認なしで既存のリンクを更新するだけです。
シンボリックリンクを強制的に更新するとします。できることは次のとおりです。
ln -sf new_file existing_soft_link
s
を追加してください ソフトリンクの場合は、ソフトリンクをハードリンクに変換します。

ボーナスのヒント:リンクのチェーンをたどって元のファイルを取得する
通常、-l
でlsコマンドを使用する場合 オプションの場合、それが指すファイルが表示されます。
ただし、リンクのチェーンがある場合は、元のファイルは表示されません。たとえば、ファイルへのリンクを作成してから、最初のリンクへの別のリンクを作成します。長いリストでは、2番目のリンクは最初のリンクを指します。
リンクのチェーンから元のファイルを見つけるには、readlink -f
を使用できます。 次のように:
readlink -f soft_link
-f
optionsは、「followthechain」のように「follow」を表します。
この画像は例をよりよく説明しています:

なぜリンクが必要なのですか?
リンクの作成方法がわかったところで、リンクが必要な理由を簡単に説明しましょう。それらはどのような実用的な目的を果たしますか?
いくつかのユースケースが考えられます。コードと実行可能ファイルが付属するソフトウェアをダウンロードしたとします。すべてを/opt
に保持します ディレクトリ。ただし、プログラムをどこからでも実行するには、その実行可能ファイルを/usr/bin
に配置する必要があります。 ディレクトリ。
実行可能ファイルをこのディレクトリに移動すると、一部のコードにアクセスする必要があり、/usr/bin
からこれらのファイルへのパスが見つからないため、機能しない場合があります。 ディレクトリ。ここで、/usr/bin
にこの実行可能ファイルへのリンクを作成できます。 ディレクトリ。
このようにして、プログラムはシステム上のどこからでも実行でき、プログラムの実行可能ファイルは元のプログラムフォルダに残ります。
リンクはLinuxの重要な部分です。それらはシステムの多くの場所で使用されています。 /lib
を見てください ディレクトリを作成すると、たくさんのソフトリンクが表示されます。
次は?
Linuxのリンクの概念に関連する次の記事を読むことを強くお勧めします。
- ソフトリンクとは何ですか?
- ハードリンクの詳細な説明
- 壊れたシンボリックリンクを見つける
- Linuxでのiノードの概念
このチュートリアルでlnコマンドを効果的に使用する方法を学んだことを願っています。質問や提案はいつでも歓迎します。