GNU/Linux >> Linux の 問題 >  >> Linux

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でシンボリックリンクまたはソフトリンクとハードリンクを使用する方法の基本的なアイデアを理解したことを願っています。


Linux
  1. Linuxでの並べ替えコマンドと例

  2. Linux ファイル システムのソフト リンクとハード リンクとは

  3. Linuxのソフトリンクとハードリンクの違い

  1. 例を使用してLinuxでIPコマンドを使用する方法

  2. Linuxのハードリンクとソフトリンクの説明

  3. Linuxでソフトリンクとハードリンクを作成する方法

  1. 例を含む10のクイックLinuxテールコマンド

  2. Linuxシステムでハードリンクとソフト(シンボリックリンク)リンクを作成する方法

  3. LinuxのZipおよびUnzipコマンドと例