ハードリンクやUnixにおけるシンボリックリンク
質問
私はちょうど明確にしたかったです
私は、コマンドを実行しました。
ln source hardlink
ln -s source softlink
- 。LSはファイルとしてショーこの2つのリンクを命じる。
私のクエリがあるので、ln / ln -s
は、実際にファイルを作成しますか?
よろしく、 darkie15
解決
はい、と何: - )
ありませんUNIXでは、ファイルの内容は、そのファイルのディレクトリエントリは異なっています。あなたはどのようにこのについての説明は、同じ内容(見上げる iノードのに複数のディレクトリ・エントリ・ポイントを持つことができます作品)と、ここでのトリッキーなビットがあります:
のすべてのこれらのディレクトリエントリが同じである。のいずれかが最初に作成されている場合でも、それについてそこの何も特別な。あなたはそれを削除した場合、内容は、単にディレクトリエントリを消えません。私はそれを見つけるために、ログファイルを削除するディスク領域をクリアしようとすることで前にかましてきた、プロセスがまだファイルを持っているので - inodeが(それを指してゼロディレクトリエントリを持っており、すべてのプロセスがファイルを閉じると内容が消えますオープン、ファイルの内容は)何のディレクトリエントリがそれらを指していなくても回復しないされます。
ハードリンクのためです。
ソフトリンクは、ビットトリッキーです。彼らは、ターゲットファイルへのパスを含む、ある種の「ファイル」(別のiノード)を作成します。そして、これらのリンクは、のないの等しいです。オリジナルを削除しても、どこにも向いていないソフトリンクであなたを残します。
、iノードが指定されたファイルシステム上で一意であるため、ハードリンクは異なるファイルシステム上のデータを参照することはできません。
、彼らがターゲットファイルではなく、そのiノードへのパスを保存するので、ソフトリンクはその制限はありません。
次転写物が役立つことがあります:
$ echo hello >f1
$ ln f1 f2
$ ln -s f1 f3
$ ls -ial f*
7385 -rw-r--r-- 2 pax None 6 May 11 14:09 f1
7385 -rw-r--r-- 2 pax None 6 May 11 14:09 f2
4672 lrwxrwxrwx 1 pax None 6 May 11 14:09 f3 -> f1
$ cat f1
hello
$ cat f2
hello
$ cat f3
hello
$ rm f1
$ ls -ial f*
7385 -rw-r--r-- 2 pax None 6 May 11 14:09 f2
4672 lrwxrwxrwx 1 pax None 6 May 11 14:09 f3 -> f1
$ cat f1
cat: f1: No such file or directory
$ cat f2
hello
$ cat f3
cat: f3: No such file or directory
私は、エントリ短いを維持するために、iノード番号の最後の4桁を使用しました(と43910096366994672
などのinode番号であなたをヒットしない)が、あなたはf1
が異なっているのに対し、そのf2
とf3
はまったく同じinodeを持って見ることができます。また、ファイルの内容がf1
はまだそれを参照しているため、その削除を生き残るf2
として最初に作成されていることがわかります。
f3
はむしろそのiノードよりもf1
名を参照しているので、しかし、あなたはそれを使用しようとするとエラーが発生します。
脇:あなたがお奨めの愛をしたことと、このようなあなたとUNIXのおもちゃます:
$ ls f*
f2 f3
$ cat f3 # What the ...?
cat: f3: No such file or directory
ほとんどスペース バックスペース X と、それを削除するために誰かを試して見てと呼ばれるファイル作成など、多くの楽しみのように: - )
他のヒント
どちらも1ファイルを作成します。
ディスク上のファイルがで識別される「iノード。」ディレクトリはiノードをファイル名をマップします。ハードリンク手段「ファイルI名と同じiノードを指していることをこのディレクトリに新しいファイル名を作成します。」
シンボリックリンク手段は、「ポイントは何にこの他のファイルのポイントをiノードにすることを、このディレクトリに新しいファイル名を作成します。」
はコメントでアウトmangomanポイントとして、シンボリックリンクは、リンク先の名前のファイルを作成し、あなたはそれに注意を払うべきではありません。それはあなたのビジネスのどれもではない特殊なファイルです。