この短い投稿では、リンクとは何か、およびシンボリック (ソフト) リンクとハード リンクの違いについて説明します。リンクは、複数のファイル名がディスク上の 1 つのファイルを参照できるようにするメカニズムです。リンクには次の 2 種類があります。
1.ハードリンク。
2.シンボリック (ソフト) リンク。
ハード リンク
– ハード リンクは、2 つ (またはそれ以上) のファイル名を i ノードに関連付けます。
– ハード リンクはすべて、独立したディレクトリ エントリとして機能しながら、同じディスク データ ブロックを共有します。
– ハード リンクは、複数のディスク パーティションにまたがることはできません。 inode 番号は、特定のデバイス内でのみ一意です。
シンボリック リンク
– シンボリック リンクは、別のファイルを指す特別なファイル タイプです。
– この特別なファイルの内容は、それが指すファイルの名前です。
– シンボリック リンクは、「ln -s 「」コマンド。
– シンボリック リンクが指すファイルが削除されると、リンクは引き続きそのファイルを指し、ぶら下がったリンクが残ります。
– find コマンドを使用して、シンボリック リンクを見つけることができます。 :
# find ./* -type l -ls
例
1. ハード リンク「hlink」とシンボリック リンク「slink」があるファイル「example」を考えます。ファイル「example」のディレクトリの内容を確認してください:
$ ls -li example 17920190 -rw-rw-r--. 1 user user 0 Nov 18 03:19 example
2. 「example」へのハードリンクを作成するコマンドは次のとおりです:
$ ln example hlink
3. 「example」へのシンボリックリンクを作成するコマンド:
$ ln -s example slink
4. ディレクトリの内容をもう一度確認してください:
$ ls -li 17920190 -rw-rw-r--. 2 user user 0 Nov 18 03:19 example 17920190 -rw-rw-r--. 2 user user 0 Nov 18 03:19 hlink 16836022 lrwxrwxrwx. 1 user user 7 Nov 18 03:21 slink -> example
「example」と「hlink」は同じ inode を参照していますが、「slink」は別の inode を参照していることに注意してください。
ハードリンクとソフトリンクの違い
以下は、ソフト リンクとハード リンクの簡単な比較表です。
パラメータ | ソフトリンク | ハードリンク |
---|---|---|
長さ | 元のファイル名と同じ | 元のファイルの長さと同じ |
I ノード | 新しい inode | 元のファイルと同じ |
制限事項 | なし | 同じファイル システム。ディレクトリにすることはできません |
スペース | 名前と i ノードの長さ | ディレクトリ エントリ |
比較 | 違う | 同じ |
オリジナルを削除 | 元のファイルのまま | 最後のリンクが削除されるまでファイルは残ります |