ソフト(シンボリック)リンクとハードリンク

Soft Link Vs Hard Link



シンボリックリンク(ソフトリンクとも呼ばれます)とハードリンクは、任意の場所からファイルまたはディレクトリにアクセスするためのリソースです。この記事では、シンボリックリンクとハードリンクの違いについて説明します。

ハードリンク

ハードリンクは、元のファイルへのパスを含むファイルではなく、それらが指す元のファイルのミラーコピーです。ファイルとそのハードリンクは、名前やパスではなく、場所、作成日、権限、その他の属性など、ファイルに関する情報を格納するiノードによって関連付けられます。各iノード番号はファイルシステム内で一意であるため、異なるパーティションまたはシステム間でハードリンクが機能しません。ハードリンクを使用してディレクトリをリンクすることはできません。







ソフトリンクとは対照的に、ハードリンクにはリンク先の情報が含まれているため、元のファイルが削除されても、そのデータにアクセスできます。



すべてのLinuxシステムでは、ハードリンクとシンボリックリンクの両方がコマンドで作成されます ln 。開始するには、最初にというファイルを作成します LinuxHintFile と呼ばれるディレクトリ LinuxHintDirectory 下の画像に示すように:



接するLinuxHintFile
rmkdir LinuxHintDirectory
ls
@Linuxヒント://linuxhint





ターミナルで実行されるファイルLinuxHintFileへのLink2LHFileと呼ばれるハードリンクを作成するには、次の手順に従います。

lnLinuxHintFile Link2LHFile



確認後 ls 作成したハードリンクが表示されます。ls-iと入力すると、ファイルのiノードが表示されます。作成したリンクのiノード番号が元のファイルと同じであることを確認できます。次のように入力します。

ls -私

上で述べたように、ディレクトリにハードリンクを使用したり、他のボリュームやファイルシステムにリンクしたりすることはできません。LinuxHintDirectoryをソフトリンクにリンクします。

次のコマンドを実行すると、作業ディレクトリ内にハードリンクが見つかります。

探す -タイプNS-リンク+1

この実行では、iノードごとにファイルを見つけることもできます。

探す-inum <InodeNumber>>

ご覧のとおり、元のファイルとハードリンクの両方が同じiノード番号を共有していることがわかりました。

ソフトリンク

ハードリンクとは対照的に、ソフトリンクは元のファイルのコピーではなく、元のファイルへのパスが含まれています。これにより、元のファイルが削除された場合、ソフトリンクまたはシンボリックリンクはファイルが壊れたリンクにならないことを示します。または孤立したリンク。つまり、ソースファイルを紛失した場合、それを削除または移動すると、シンボリックリンクは情報にアクセスできなくなりますが、ハードリンクを使用すると、完全かつ正確であるため、ソースファイルが削除されても情報は残ります。そのファイルのコピー。

また、ハードリンクとは対照的に、シンボリックリンクは元のファイルと同じiノードを共有しません。そのため、シンボリックリンクはボリュームとファイルシステムを横断できますが、ハードリンクは横断できません。シンボリックリンクを使用してディレクトリをリンクできますが、ハードリンクは使用できません。

シンボリックリンクもプログラムで作成されます ln 、ただし、リンクをシンボリック/ソフトにするには、パラメーターを指定する必要があります -NS 、LHDLinkと呼ばれるディレクトリLinuxHintDirectoryへのシンボリックリンクを作成するには、次のようにします。

ln -NSLinuxHintDirectory LHDLink

そして、「 ls -i ’が適切に作成されたことを確認します。

この場合に見られるように、シンボリックリンクが作成されましたが、元のファイルとは異なるiノード番号があります。

次のコマンドを使用して、ディレクトリ内のシンボリックリンクを一覧表示できます。 ls -l

上の画像では、最初のファイルのパーミッションにプレフィックスが表示されています。 NS シンボリックリンクの場合、行の終わりには、シンボリックリンクがどのファイルを指しているかも示されます。

この記事が、ハードリンクとシンボリックリンクの違いとその作成方法を理解するのに役立つことを願っています。 Linuxに関するその他のヒントやアップデートについては、LinuxHintをフォローしてください。