Bagaimana saya bisa menemukan tautan keras di Windows?

33

Saya telah membuat beberapa tautan keras pada sistem file Windows 7 saya menggunakan mklink. Itu beberapa waktu yang lalu dan saya tidak ingat pasti di mana, atau file mana. Ketika saya menggunakan Explorer, semua file terlihat sama. Ketika saya menggunakan baris perintah dan ketik "dir", mereka semua terlihat sama.

Bagaimana cara menemukan tautan keras? Atau bagaimana cara menentukan apakah file tertentu adalah tautan keras?

MM.
sumber

Jawaban:

33

Semua file adalah tautan keras, dengan jumlah tautan setidaknya 1.

Inilah sebabnya mengapa file terlihat sama. Mereka adalah sama. Apa yang Anda cari adalah file di mana ada lebih dari satu tautan ke file tersebut. Ada sangat sedikit yang membedakan file dengan jumlah tautan lebih besar dari satu dari file dengan jumlah tautan satu ... kecuali jumlah tautan (dan beberapa perilaku aneh sehubungan dengan atribut dan prangko tanggal).

Dan itu mudah mati untuk memeriksa dengan findperintah yang ada di toolkit utilitas SFUA Microsoft , yang berjalan di Subsistem untuk Aplikasi berbasis Unix :

temukan. -link +1

JdeBP
sumber
9
hanya sebagai catatan, cygwin / bin / find juga berfungsi. Terima kasih!
arcyqwerty
6
Hanya untuk memperjelas "Microsoft find" yang dirujuk dalam solusi di sini bukan Windows 7 yang diinstal secara default. Anda harus mengunduh dan menginstal Microsoft baru find. Maka Anda dapat menggunakan findutilitas itu. Atau instal findperintah Cygwin seperti @arcyqwerty (yang mungkin akan memiliki dukungan jangka panjang yang lebih baik).
Trevor Boyd Smith
2
Bisa juga menggunakan built-in fsutil hardlink list filename. (lihat jawaban Sergey )
Svish
28

Di Windows 7, gunakan perintah:

fsutil hardlink list MyFileName.txt

Ini daftar semua hardlink ke file dengan nama MyFileName.txt.

Sergey
sumber
Perhatikan bahwa Anda harus menjadi admin untuk menjalankan fsutil.
Alastair Maw
2
@AlastairMaw Pada setidaknya Windows 10 Anda tidak perlu menjadi admin untuk menjalankan perintah tertentu. Atau apakah berfungsi menjadi admin tanpa UAC? (yaitu, hanya grup tanpa elevasi yang sebenarnya)
Paul Stelian
9

Sayangnya, tidak ada cara bagi OS untuk menemukan semua hardlink Anda tanpa melihat setiap file.

Untuk Explorer, Anda dapat mengunduh Link Shell Extension yang sangat praktis , yang melapisi file dengan hardlink dengan panah seperti pintasan merah.

Ini juga membuatnya lebih mudah untuk membuat hardlink, symlink dan persimpangan melalui menu konteks Explorer.

Obrolan bonus:

Secara teknis, semua file adalah hardlink. Jadi, Anda benar-benar mencari file dengan lebih dari satu hardlink.

surfasb
sumber
1
Sebenarnya itu. Lihat jawaban Sergey .
Svish
1
Jawaban Sergey bekerja untuk bagian kedua dari pertanyaan, tetapi bukan yang pertama.
surfasb
3

gunakan finddupe :

finddupe -listlink c:\photos
eadmaster
sumber
-listlink Menempatkan finddupe dalam mode mencari tautan keras. Dalam mode ini, finddupe akan mendaftar kelompok file mana yang di-hardlink bersama-sama. Semua instance hardlink yang ditemukan dari sebuah file ditampilkan bersama. Namun, finddupe hanya dapat menemukan contoh file yang di-hardlink yang ada di dalam jalur pencarian.
Shayan
3

 Cara sederhana untuk pemeriksaan satu kali: Apakah atribut file berubah bersama?

Jika Anda ingin menguji apakah file Adan Btautan keras ke konten yang sama dan Anda tidak ingin menginstal atau menjalankan apa pun, buka jendela Properties file Adan beralih misalnya atribut Read-only . Sekarang buka jendela Properties file Buntuk melihat apakah perubahan atribut (file A) juga terjadi di sini. Jika ya, maka jawabannya positif.

Kenapa ini berhasil? Karena tautan keras terkait berbagi rangkaian atribut file dan stempel waktu yang sama.

Karena itu, pengujian yang sama dapat dilakukan dengan stempel waktu file, tetapi mereka tidak dapat diubah semudah bendera Read-only untuk melakukan pemeriksaan.

miroxlav
sumber