¿Cómo puedo encontrar enlaces duros en Windows?

33

He creado algunos enlaces duros en mi sistema de archivos de Windows 7 usando mklink. Fue hace algún tiempo y no puedo recordar con certeza dónde o qué archivos. Cuando uso Explorer, todos los archivos se ven iguales. Cuando uso la línea de comando y escribo "dir", todos se ven iguales.

¿Cómo encuentro enlaces duros? ¿O cómo determino si un archivo específico ES un enlace duro?

MM.
fuente

Respuestas:

33

Todos los archivos son enlaces duros, con recuentos de enlaces de al menos 1.

Es por eso que los archivos se ven iguales. Ellos son el mismo. Lo que parece estar buscando son archivos donde haya más de un enlace al archivo. Hay muy poco que distinga un archivo con un recuento de enlaces mayor que uno de un archivo con un recuento de enlaces de uno ... excepto el recuento de enlaces (y algún comportamiento extraño con respecto a los atributos y las marcas de fecha).

Y eso es muy fácil de verificar con el findcomando que se encuentra en el kit de herramientas de utilidad SFUA de Microsoft , que se ejecuta en el Subsistema para aplicaciones basadas en Unix :

encontrar . -enlaces +1

JdeBP
fuente
9
solo como una nota, cygwin / bin / find también funciona. ¡Gracias!
arcyqwerty
66
Para ser claros, el "Microsoft find" al que se hace referencia en la solución aquí no es el Windows 7 instalado por defecto. Debe descargar e instalar un nuevo Microsoft find. Entonces puedes usar esa findutilidad. O instale el findcomando de Cygwin como @arcyqwerty (que probablemente tendrá un mejor soporte a largo plazo).
Trevor Boyd Smith
2
También puede usar el incorporado fsutil hardlink list filename. (ver la respuesta de Sergey )
Svish
28

En Windows 7, use el comando:

fsutil hardlink list MyFileName.txt

Enumera todos los enlaces duros para archivar con nombre MyFileName.txt.

Sergey
fuente
Tenga en cuenta que debe ser administrador para ejecutar fsutil.
Alastair Maw
2
@AlastairMaw Al menos en Windows 10 no es necesario ser administrador para ejecutar ese comando en particular. ¿O funciona ser administrador sin UAC? (es decir, solo el grupo sin elevación real)
Paul Stelian
9

Desafortunadamente, el sistema operativo no puede encontrar todos sus enlaces duros sin mirar cada archivo.

Para Explorer, puede descargar la muy útil extensión de Shell de enlace , que superpone archivos con enlaces duros con una flecha roja de acceso directo.

También hace que sea bastante fácil crear enlaces duros, enlaces simbólicos y uniones a través del menú contextual del Explorador.

Charla de bonificación:

Técnicamente, todos los archivos son enlaces duros. Por lo tanto, realmente está buscando archivos con más de un enlace duro.

surfasb
fuente
1
En realidad lo es. Ver la respuesta de Sergey .
Svish
1
La respuesta de Sergey funciona para la segunda parte de la pregunta, pero no para la primera.
surfasb
3

use finddupe :

finddupe -listlink c:\photos
Eadmaster
fuente
-listlink Pone finddupe en modo de búsqueda de enlace duro. En este modo, finddupe enumerará qué grupos de archivos están unidos entre sí. Todas las instancias enlazadas de un archivo se muestran juntas. Sin embargo, finddupe solo puede encontrar instancias del archivo enlazado que están dentro de la ruta de búsqueda.
Shayan
3

 Una forma simple de verificaciones únicas: ¿los atributos de los archivos cambian juntos?

Si desea probar si los archivos Ay Benlaces fijos con el mismo contenido y que no desea instalar o ejecutar cualquier cosa, abrir las propiedades de la ventana de archivo Ay de palanca, por ejemplo, su modo de sólo lectura atributo. Ahora abra la ventana Propiedades del archivo Bpara ver si el cambio del atributo (del archivo A) también tuvo lugar aquí. En caso afirmativo, la respuesta es positiva.

¿Por qué esto funciona? Porque los enlaces duros relacionados comparten el mismo conjunto de atributos de archivo y marcas de tiempo.

Dicho esto, se puede hacer la misma prueba con marcas de tiempo de archivos, pero no se pueden cambiar tan fácilmente como el indicador de solo lectura para realizar la verificación.

miroxlav
fuente