1

Windows でハード リンクを作成する方法を探していたところ、次のページを見つけました: http://technet.microsoft.com/en-us/library/cc788097.aspx

試してみるために、次の内容の 100 行を含むファイル (1.txt) を C: ドライブのルートに作成しました。

C:\1.txt (2.598 バイト):

test test test test test

次に、コマンド プロンプトを開き、次のように入力しました。

fsutil hardlink create C:\2.txt C:\1.txt

成功、2.txt が作成されましたが、サイズを確認すると、正確に 2.598 バイトであり、いくつかの奇妙な動作にも気付きました (ハード リンクに関する私の理解に関する限り):

  1. 2.txt (ハード リンク ファイル) を削除すると、1.txt は削除されず、その逆も同様です。
  2. 1.txt (元のファイル) を削除した後に 2.txt を開くと、内容は同じままです。

fsutil hardlink create コマンドは copy コマンドとどう違うのですか? また、Windows で真のハード リンクを作成するにはどうすればよいですか?

Windows XP SP 3 を使用しており、ファイル システムは NTFS です。

4

3 に答える 3

5

それはまさに起こるはずの動作です。ハードリンクの仕組みを理解していますか? ハード リンクは、実際には、まったく同じファイルを参照する、ファイル システム内の複数のエントリです。ファイルへのハード リンクを作成し、ファイルのインスタンスの 1 つを変更すると、両方のファイルがディスク上の同じデータ ブロックを参照するため、他のファイルが変更とともに表示されます。

ハード リンクの 1 つを削除すると、実際には、そのファイルを参照するファイル システム エントリの 1 つが削除されるだけです。すべてのハード リンク (元のリンクを含む) を削除するまで、ファイルは削除されません。1.txt を削除した後、2.txt はまだ存在し、最初にそこにあったのと同じファイルを参照しますが、そのファイル (つまり、2.txt) を参照するファイル システム エントリは 1 つだけになります。2.txtそのファイルです。

于 2009-04-28T02:29:08.097 に答える
1

fsutil hardlink create コマンドは copy コマンドとどう違うのですか? また、Windows で真のハード リンクを作成するにはどうすればよいですか?

ハードリンクされたファイルを作成したら、どちらかを編集してみてください。変更が両方のファイルに反映されていることがわかります。

非常に大きなファイル (ビデオやディスク イメージなど) のハード リンクを作成してみてください。ディスク上の使用可能なスペースが変更されていないことに注意してください (または、新しいディレクトリ エントリを反映するために追加のメタデータをディスクに書き込む必要がある場合は、数バイト以上変更されていません)。

于 2009-04-28T02:42:19.763 に答える
0

それは真のハードリンクです。UNIX では (私は Windows のバリアントに詳しくありません)、ファイルはディスク上の単なるデータのセットです (単純化して)。そのファイルに名前を付けるのは、ディレクトリエントリ自体です。

同じ基になるファイルを指している 2 つのディレクトリ エントリがある場合、そのうちの 1 つを削除しても、それが最後にアタッチされたディレクトリ エントリでない限り、ファイルは削除されませ(ファイルはプロセスによってまだ開かれていませんが、それは別の問題です)。

于 2009-04-28T02:38:19.633 に答える