数年前、私が最初にLinuxを使い始めて若い男性の服を着ていたとき、Linuxについて理解するのに最も難しいことの1つは、シンボリックリンクの概念とLinux環境でのそれらの使用でした。
今、ほぼ20年後、私はついにそれを理解しました。この記事では、シンボリックリンクとは何か、ハードリンクとシンボリックリンク(symlink)の違い、両方のタイプを作成および削除する方法、およびLinux環境でのそれらの価値について正確に説明します。
>ハードリンクとは何ですか?
LinuxおよびLinuxのようなオペレーティングシステムでは、事実上すべてがファイルです。そのことを念頭に置いて、Linuxでは、ファイルはiノードへの単なるリンクです。 iノードは、ファイルに関するすべてのものをその名前や実際のコンテンツから分離して保持するデータ構造です。
一部のLinuxユーザーは、ハードリンクを既存のファイルの追加の名前と考えるのが好きです。したがって、ハードリンクを作成するときは、2つ以上のファイル名を同じiノードに関連付けるだけです。
Windowsに精通しているユーザーにとって、Linuxハードリンクは、DOSコマンドで作成するWindowsハードリンクによく似ています。
C:/> mklink /h "link" "target"
それは問題のある概念のように見えます。 Linuxターミナルでハードリンクを作成するかどうかを見てみましょう。物事がより明確になります。
ハードリンクを作成する方法
lnを使用します Linuxでリンクファイルを作成するコマンド。ハードリンクを作成するためのlnコマンドの形式は次のとおりです。
# ln "source" "link" # ln "/path/to/source" "/path to link" # ln "target" "link" # ln "target" "directory"
ここで、「ソース」は既存のファイルであり、「リンク」は作成するファイルまたはハードリンクです。
したがって、次の例では、次のようにします
「ソース」ファイルを作成します。
# echo 'This is the FOSS Linux Hard Link example' > FOSS
「リンク」ファイルを作成します。
# ln FOSS Linux
作成した「ソース」ファイル(FOSS)と「リンクファイル」(Linux)を一覧表示します。
# ls -li FOSS Linux

lsからの出力を見ると コマンドを実行すると、iノードが一致していることがわかります。 -iを使用しました 特にlsコマンドでオプションを指定して、ファイルのiノード(この場合は 9448255 )を確認できるようにします。 、 両方のための。ハードリンクで覚えておいてください。 「2つ以上のファイル名を同じiノードに関連付けるだけです。」
また、出力の3番目の列に 2という数字が表示されていることに注意してください。 。これは、ファイルへのハードリンクの総数です。ここでは、 2 。
ディレクトリのハードリンクは作成できないことに注意してください。したがって、たとえば、ディレクトリ / home / tutを参照するためのハードリンクを作成することはできませんでした。 。別のファイルシステムまたはパーティション上のディレクトリとファイルのハードリンクを作成することもできません。
シンボリックリンクとは何ですか?
シンボリックリンクまたはシンボリックリンク(ソフトリンクと呼ばれることもあります)は、ハードリンクよりもはるかに簡単に消化できました。シンボリックリンクの要点を理解するには、Windowsショートカットを考えてみてください。すべてのシンボリックリンクが実際のファイルへのポインタ(またはショートカット)であること。ハードリンクとは異なり、シンボリックリンクは同じiノードを参照する2つのファイルではありません。代わりに、シンボリックリンクは実際のファイルへの単なる「ショートカット」です。
シンボリックリンクの例を作成して、私が何を意味するのかを調べてみましょう。
シンボリックリンクを作成する方法
ハードリンクの場合と同様に、 lnを使用します シンボリックリンクを作成するコマンド。シンボリックリンクを作成するためにのみ、 -sを使用します 修飾子( ln -s )作成するリンクがシンボリックリンクであることを指定します。
シンボリックリンクを作成しましょう。以前にハードリンクファイルで中断したところを覚えているでしょう。その上に構築します。
シンボリックリンクファイルを作成しましょう。
# ln -s FOSS Is_Great
次に、ファイルを確認します。
# ls -li FOSS Linux Is_Great

変更されたlsからの更新された出力を確認します コマンドを実行すると、ハードリンクで何も変更されていないことがわかりますが、シンボリックリンクが含まれています。新しいファイルのiノードは2つのハードリンクとは異なり、2番目の列は lで始まります。 。 l ファイルがシンボリックリンクであることを示します。新しく作成されたシンボリックリンク(またはショートカット)が、シンボリックリンクのファイルを指していることがわかります。ここでは、 FOSS ( Is_Great> FOSS 。
結論
うまくいけば、私たちの記事を読んだ後、ハードリンクとシンボリックリンクまたはシンボリックリンクについての理解が深まるでしょう。問題が発生した場合は、 ln manをお勧めできません。 十分なページ。

ご不明な点がございましたら、下のコメント欄でお問い合わせください。折り返しご連絡いたします。