web-dev-qa-db-ja.com

Windowsでハードリンクを見つけるにはどうすればよいですか?

Mklinkを使用して、Windows 7ファイルシステムにハードリンクをいくつか作成しました。それは少し前のことで、どこにどのファイルがあったのか、はっきりとは思い出せません。エクスプローラを使用すると、すべてのファイルが同じように見えます。コマンドラインを使用して「dir」と入力すると、すべて同じように見えます。

ハードリンクを見つけるにはどうすればよいですか?または、特定のファイルISハードリンクかどうかをどのように判断しますか?

33
MM.

すべてのファイルはハードリンクであり、リンク数は1以上です。

これがファイルが同じに見える理由です。それらは同じです。あなたが探しているように見えるのは、ファイルへのリンクが1つ以上あるファイルです。リンク数が1より大きいファイルとリンク数が1のファイルを区別するものはほとんどありません…リンク数(および属性と日付スタンプに関するいくつかの奇妙な動作)を除きます。

そして、thatは、Microsoftの SFUAユーティリティツールキット にあるfindコマンドで簡単に確認できます。 Unixベースのアプリケーションの サブシステムで実行されます

見つける。 -リンク+1
35
JdeBP

Windows 7では、次のコマンドを使用します。

fsutil hardlink list MyFileName.txt

MyFileName.txtという名前のファイルへのすべてのハードリンクが一覧表示されます。

30
Sergey

残念ながら、OSが各ファイルを確認せずにすべてのハードリンクを見つける方法はありません。

Explorerの場合、非常に便利な Link Shell Extension をダウンロードできます。これは、ハードリンクが付いたファイルに赤いショートカットのような矢印が付いたオーバーレイです。

また、エクスプローラーのコンテキストメニューからハードリンク、シンボリックリンク、ジャンクションを作成するのも簡単です。

ボーナスおしゃべり:

技術的には、すべてのファイルはハードリンクです。したがって、実際には複数のハードリンクを持つファイルを探しています。

10
surfasb

finddupe を使用:

finddupe -listlink c:\photos
3
eadmaster

1回限りのチェックの簡単な方法:ファイル属性は一緒に変更されますか?

ファイルAおよびBが同じコンテンツへのハードリンクであり、何もインストールまたは実行したくないかどうかをテストする場合は、Propertiesウィンドウを開きます。ファイルAを変更し、たとえば読み取り専用属性を切り替えます。次に、ファイルBの-​​Propertiesウィンドウを開いて、ここで(ファイルAの)属性の変更が行われたかどうかを確認します。はいの場合、答えは肯定的です。

なぜこれが機能するのですか?関連するハードリンクが同じファイル属性とタイムスタンプのセットを共有しているためです。

そうは言っても、同じテストはファイルのタイムスタンプを使用して行うことができますが、チェックを実行するためにRead-onlyフラグほど簡単に変更することはできません。

2
miroxlav