Linuxシステム、「ソフトリンク」と「ハードリンク」の間の区別

私たちは、データファイルは、ファイル名、持っていることを知っている  Linuxの  ユーザデータ(ユーザデータ)とメタデータ(メタデータ):2つの部分に分かれています。ユーザデータ、すなわち、データブロック(データブロック)、データブロックは、ローカルログファイルの内容が真であるれ、メタデータは、ファイルサイズ、作成日時、所有者などの追加属性ファイルです。Linuxでは、一意のファイル名ではなくファイルを識別するinode番号メタデータは、(iノードは、メタデータファイルの一部であるが、iノード番号であるファイル名、iノード番号が含まれていない)です。ファイル名は人々の記憶の便宜のためであるとiノード番号を通じて、正しいファイルやプログラムのデータ・ブロックを見つけるために、システムを使用しています。そして、そこに迅速にデータ要素を見つける方法があり、それはソフトとハードリンク、それで見てみましょうです。

リンクとは何ですか?

言うへのリンクは、ファイル共有の簡単な方法は、POSIX、主要なファイルシステムのサポートファイルのリンクで概念である、実際にあります。

行うために使用されていますか?

あなたは、単に(OS Xまたはエイリアス)の一般的なWindowsのショートカットとして理解リンクすることができ、Linuxは一般的に、問題のライブラリバージョンのいくつかを解決するためにそれを使用し、多くの場合、より深いレベルにディレクトリのファイルへのリンクを追加より多くのアクセス可能なディレクトリ。これらのアプリケーションでは、我々は通常、(また、シンボリックリンクとして知られている)ソフトリンクを使用します。

コンテンツ

リンクは、ソフトとハードリンクの違いがありますか?
ここでは、違いが何であるかを最終的には、ハードとソフトリンクを探索するために、入りますか?

それは、その後、実行可能ファイルを直接実行することができますされている場合はまず、話すの使用の観点から、両者の間に違いはありません、通常のファイルアクセス、サポートの読み書きと同じです。

何それとの違いそれ?原則として基礎となります。

説明するために、我々は、最初にあなたの作業ディレクトリにファイルを作成し、ファイルの作成にリンクされています

$ touchはmyfileという&&エコー「これは、プレーンテキストファイルです。」> MYFILEの
$猫はMYFILE 

これは、プレーンテキストファイルです。

今、私たちは共通の基盤は、もはや通常のファイルをすることができます作成​​されていません。その後、我々はそれにハードリンクを作成し、カレントディレクトリを見て:

$ LN MYFILEハード
-li $ LSを

-rw-R 25869085 - r--の2 unixziiスタッフ27 7 8 17:39ハード
25869085 -rw-rを- r--の2 unixziiスタッフ27 7 8 17:39 MYFILE

LSの左端の列では、inodeファイルの値を結果として、あなたは、単にC言語のポインタとして考えることができます。それは実際には、ファイルシステムは、参照カウント限り、このブロックのポイントは、それはハードディスクから消えないであろうというファイルを維持し、物理的なハードドライブのブロックを指します。

あなたは、同じiノード値としてファイル、同じブロックへのすべての点として、これら二つの文書を見ることができるように。

その後、我々はあなたが作成したファイルへのビットのハードリンクを変更しました:

$エコー「新ライン」>>ハード
myfileの$猫

これは、プレーンテキストファイルです。
改行

あなたは、これら二つの文書が本当にファイルで見ることができます。ここでは、(シンボリックリンクです)ソフトリンクを見て、それは差がありません。

$ ln -s myfile soft
$ ls -li

25869085 -rw-r--r-- 2 unixzii staff 36 7 8 17:45 hard
25869085 -rw-r--r-- 2 unixzii staff 36 7 8 17:45 myfile
25869216 lrwxr-xr-x 1 unixzii staff 6 7 8 17:47 soft -> myfile

诶,你会发现,这个软链接的 inode 竟然不一样啊,并且它的文件属性上也有一个 l 的 flag,这就说明它与之前我们创建的两个文件根本不是一个类型。

下面我们试着删除 myfile 文件,然后分别输出软硬链接的文件内容:

$ rm myfile
$ cat hard

This is a plain text file.
New line
$ cat soft

cat: soft: No such file or directory

之前的硬链接没有丝毫地影响,因为它 inode 所指向的区块由于有一个硬链接在指向它,所以这个区块仍然有效,并且可以访问到。 然而软链接的 inode 所指向的内容实际上是保存了一个绝对路径,当用户访问这个文件时,系统会自动将其替换成其所指的文件路径,然而这个文件已经被删除了,所以自然就会显示无法找到该文件了。

为验证这一猜想,我们再向这个软链接写点东西:

$ echo "Something" >> soft
$ ls

hard myfile soft

私たちは、見るだけでファイルmyfileを実際に登場を削除することができます!我々はアクセスソフトリンクを作成するとき、それは絶対パス、およびダイレクト・アクセスのパスを表し、これが示すように、システムが自動的にそのパスに置き換えられていること。

概要

要約
ここでは事実をまとめることができます。

ハードリンク:ファイルはinodeがのハードディスク上の同じファイルにすべてのポイントをブロックし、通常と変わらない
柔らかいリンク:それが表すファイルの絶対パスを保存、別の文書、ハードディスク上の別のブロック、アクセスです自身のパスを交換するとき。


おすすめ

転載: blog.51cto.com/14414295/2481888