Linuxのソフトリンクとハードリンクとは何ですか?
シンボリック またはソフトリンク は元のファイルへの実際のリンクですが、ハードリンク 元のファイルのミラーコピーです。元のファイルを削除した場合、存在しないファイルを指しているため、ソフトリンクには価値がありません。
しかし、ハードリンクの場合、それは完全に反対です。元のファイルを削除しても、ハードリンクには元のファイルのデータが残ります。ハードリンクは元のファイルのミラーコピーとして機能するためです。
一言で言えば、ソフトリンク
- ファイルシステムを横断できます
- ディレクトリ間をリンクできます
- 元のファイルとは異なるiノード番号とファイル権限があります
- 許可は更新されません
- 元のファイルのパスのみがあり、内容はありません。
ハードリンク
- ファイルシステムの境界を越えることはできません(つまり、ハードリンクは同じファイルシステムでのみ機能します)
- ディレクトリをリンクできません
- 元のファイルと同じiノード番号と権限を持っています
- ソースファイルの権限を変更すると、権限が更新されます
- 元のファイルの実際の内容が含まれているため、元のファイルを移動または削除した場合でも、内容を表示できます。
それでもわかりませんか?さて、いくつかの実用的な例をお見せしましょう。
ソフトリンクまたはシンボリックリンクの作成方法
"test"
という空のディレクトリを作成しましょう 。
$ mkdir test
"test"
に変更します ディレクトリ:
$ cd test
次に、 source.file
という名前の新しいファイルを作成します 以下に示すようないくつかのデータがあります。
$ echo "Welcome to OSTechNix" >source.file
source.fileのデータを見てみましょう。
$ cat source.file Welcome to OSTechNix
さて、source.file
作成されました。
次に、source.file
へのシンボリックリンクまたはソフトリンクを作成します 。
これを行うには、次を実行します:
$ ln -s source.file softlink.file
両方のsource.file
のデータを比較してみましょう およびsoftlink.file
。
$ cat source.file Welcome to OSTechNix
$ cat softlink.file Welcome to OSTechNix
上記の出力にあるように、softlink.file
source.file
と同じデータを表示します 。
softlink.file
のiノードとパーミッションを確認しましょう およびsource.file
。
$ ls -lia
出力例:
total 12 11665675 drwxrwxr-x 2 sk sk 4096 Oct 17 11:39 . 4325378 drwxr-xr-x 37 sk sk 4096 Oct 17 11:39 .. 11665731 lrwxrwxrwx 1 sk sk 11 Oct 17 11:39 softlink.file -> source.file 11665692 -rw-rw-r-- 1 sk sk 21 Oct 17 11:39 source.file
上のスクリーンショットにあるように、 iノード番号(11665731
vs 11665692
) およびファイルのアクセス許可(lrwxrwxrwx
vs -rw-r--r--
) 異なる 、softlink.file
source.file
と同じ内容です 。したがって、ソフトリンクは元のファイルと同じiノード番号とアクセス許可を共有しないことが証明されています。
次に、元のファイル(つまり、source.file
)を削除します )そして何が起こるか見てください。
$ rm source.file
softlink.file
の内容を確認してください コマンドの使用:
$ cat softlink.file
出力例:
cat: softlink.file: No such file or directory
上記のように、softlink.file
というファイルやディレクトリはありません。 元のファイル(つまり、source.file
)を削除した後 )。
これで、ソフトリンクは元のファイルを指す単なるリンクであることがわかりました。ソフトリンクはファイルへのショートカットのようなものです。ファイルを削除すると、ショートカットは役に立ちません。
ご存知のとおり、ソフトリンクを削除しても、元のファイルは引き続き使用できます。
推奨される読み物:
- Linuxでシンボリックリンクを一覧表示する方法
- Linuxで壊れたシンボリックリンクを見つけて削除する方法
source.file
というファイルを作成します 以下に示すような内容が含まれています。
$ echo "Welcome to OSTechNix" >source.file
ファイルの内容を確認しましょう。
$ cat source.file Welcome to OSTechNix
source.file
作成されました。
それでは、source.file
へのハードリンクを作成しましょう。 以下に示すように。
$ ln source.file hardlink.file
hardlink.file
の内容を確認してください :
$ cat hardlink.file Welcome to OSTechNix
hardlink.file
が表示されます source.fileと同じデータを表示します。
hardlink.file
のiノードと権限を確認しましょう およびsource.file
。
$ ls -lia
出力例:
total 16 11665675 drwxrwxr-x 2 sk sk 4096 Oct 17 11:58 . 4325378 drwxr-xr-x 37 sk sk 4096 Oct 17 11:39 .. 11665692 -rw-rw-r-- 2 sk sk 21 Oct 17 11:57 hardlink.file 11665692 -rw-rw-r-- 2 sk sk 21 Oct 17 11:57 source.file
これで、両方のhardlink.file
およびsource.file
同じiノード番号(11665692
) およびファイルのアクセス許可( -rw-r--r--
) 。したがって、ハードリンクファイルは元のファイルと同じiノード番号とアクセス許可を共有していることが証明されます。
ヘッズアップ: source.file
の権限を変更した場合 、同じ権限がhardlink.file
に適用されます 同様に。
次に、元のファイル(つまり、source.file
)を削除します )そして何が起こるか見てください。
$ rm source.file
hardlink.file
の内容を確認してください コマンドの使用:
$ cat hardlink.file
出力例:
上記のように、ソースファイルを削除しても、hardlink.file
の内容を表示できます。 。したがって、ハードリンクは元のファイルと同じiノード番号、アクセス許可、およびデータを共有していることが証明されます。
では、ハードリンクと通常のコピーファイルの違いは何ですか?
元のファイルを簡単にコピーして貼り付けることができるのに、なぜハードリンクを作成するのか疑問に思われるかもしれません。ファイルへのハードリンクを作成することは、ファイルをコピーすることとは異なります。
ファイルをコピーすると、コンテンツが複製されます。したがって、一方のファイルのコンテンツ(元のリンクまたはハードリンク)を変更しても、もう一方のファイルには影響しません。
ただし、ファイルへのハードリンクを作成し、いずれかのファイルのコンテンツを変更すると、変更は両方に表示されます。
source.fileを見てみましょう。
$ cat source.file Welcome to OSTechNix
ソースファイルには、「OSTechNixへようこそ」という1行があります。
source.file
の「WelcometoLinux」などの新しい行を追加します またはhardlink.file
。
$ echo "Welcome to Linux" >>source.file
次に、両方のファイルの内容を確認します。
$ cat hardlink.file Welcome to OSTechNix Welcome to Linux
$ cat source.file Welcome to OSTechNix Welcome to Linux
見る? source.file
に加えた変更 両方のファイルで更新されます。意味-両方のファイル(ソースとハードリンク)が同期します。
ファイルに加えた変更は、他のファイルにも反映されます。通常、ファイルをコピーして貼り付ける場合、他のファイルに新しい変更は表示されません。
詳細については、マニュアルページを確認してください。
$ man ln
結論
このガイドでは、Linuxでのソフトリンクとハードリンクとは何か、サンプルコマンドを使用してソフトリンクとハードリンクを作成する方法について説明し、最後にハードリンクと通常のコピーファイルの違いについて説明しました。
Linuxでシンボリックリンクまたはソフトリンクとハードリンクを使用する方法の基本的なアイデアを理解したことを願っています。