En un volumen Win7 NTFS, estoy usando cwrsync que admite --link-dest correctamente para crear copias de seguridad de tipo "instantánea". Así que tengo:
z:\backups\2010-11-28\cygdrive\c\Users\...
z:\backups\2010-12-02\cygdrive\c\Users\...
El contenido de 2010-12-02 es principalmente enlaces de nuevo a archivos en el directorio 2010-11-28, pero hay algunos archivos nuevos o modificados solo en 2010-12-02. En Linux, la utilidad 'du' me indicará el tamaño real tomado por cada instantánea incremental. En Windows, explorer y du under cygwin son engañados por enlaces duros y muestra 2010-12-02 ocupando un poco más de espacio que 2010-11-28.
¿Existe una utilidad de Windows que muestre el espacio correcto utilizado de forma aguda?
Respuestas:
Trate de usar Uso Sysinternals disco (de otro modo conocido como
du
), específicamente el uso de la-u
y-v
banderas sólo se contarán los sucesos únicos, y mostrarán el uso de cada carpeta a medida que avanza.Hasta donde yo sé, el sistema de archivos no muestra la diferencia entre el archivo original y un enlace duro (ese es realmente el punto de un enlace duro), por lo que no puede descartarlos carpeta por carpeta, pero Necesito hacer esto comparativamente.
Para probar, creé una carpeta aleatoria con 6 archivos. Clonado todo el asunto. Luego creó varios enlaces duros y blandos dentro de la primera carpeta para hacer referencia a otros archivos en la primera carpeta, y también a algunos en la segunda.
du -u -v testFld
Resultados en ejecución (tenga en cuenta que los valores al lado de las carpetas están en KiB):du -u -v testFld\a
Resultados en ejecución en:du -u -v testFld\b
Resultados en ejecución en:¿Nota la falta de coincidencia?
Los enlaces simbólicos en A que se refieren a archivos en B solo se cuentan contra A durante la ejecución "completa", y B solo devuelve 54 (a pesar de que los archivos estaban originalmente en B y vinculados desde A). Cuando mide B por separado (o, si no usa la
-u
bandera única), contará su medida "completa" de 74.fuente
-u
bandera. Obtiene la medida "completa" si usa la-u
bandera. Sin él, solo cuenta 1 instancia de cualquier archivo vinculado. Lo dice en los documentos: docs.microsoft.com/en-gb/sysinternals/downloads/du y las pruebas lo verifican.PowerShell 5 puede ser una opción. Está disponible para Windows 7, pero solo lo probé en un Servidor 2012 R2 con la Vista previa de abril de 2015
El proveedor del sistema de archivos en PowerShell 5 tiene dos nuevas propiedades
LinkType
yTarget
:esto devuelve:
Entonces ahora solo puedo mostrar todos los archivos en system32 que no son enlaces duros:
esto devuelve:
puedes comparar eso con todos los archivos:
Entonces, más de 13,000 archivos con 2GB + son enlaces duros
fuente
TreeSize Professional (~ $ 55, 30 días de prueba) afirma que distingue el espacio en disco NTFS. Una prueba rápida parece confirmar esto.
El soporte de Hardlink no está activado de inmediato: vaya a Herramientas> Opciones> Escanear , vuelva a escanear, luego use
Ctrl-1
yCtrl-2
para cambiar entre Tamaño y espacio asignado . Asignado es el espacio real utilizado, mientras que Tamaño es la estadística que normalmente informan otros programas.Hay una penalización de rendimiento por activar el soporte de enlace duro (y también enlaces simbólicos y monturas si así lo desea). La paleta de colores es llamativa para mi gusto, pero eso parece ser normal para el curso en este género. También tenga cuidado al hacer clic en el área del gráfico de cuadro: es fácil mover accidentalmente una carpeta con un arrastrar y soltar por error cuando solo tenía la intención de expandirla.
fuente
Creo que algunos hechos deben establecerse aquí.
Windows no puede "detectar" enlaces duros, ya que cada archivo es en realidad un enlace duro a un grupo de bytes en el disco.
La herramienta du detecta duplicados, pero eso también es falso, ya que si la carpeta A contiene archivos y B solo contiene enlaces duros a los archivos en A, entonces du de A y du de B devolverán la misma respuesta: el tamaño de los archivos originalmente de A, pero estos archivos ahora también están en B.
Esto es realmente correcto, ya que, por ejemplo, si eliminó A, sus archivos no se eliminarán en el disco, ya que B. todavía hace referencia a ellos. bastante arbitrario y sin sentido.
Los productos como du enumerarán un directorio mientras descuentan los duplicados. Esto solo funcionará si todos los archivos y enlaces duros están contenidos en un directorio. Muchos productos de lista de carpetas hacen eso.
Conclusión: Con los enlaces duros, la cuestión del "tamaño real utilizado en un directorio NTFS" no tiene sentido.
fuente
También investigo un poco sobre esta cuestión. Aquí están los resultados que descubrí.
El tamaño de la carpeta que contiene archivos enlazados en NTFS puede considerarse en tres significados diferentes:
El número 2 es lo que muestra TreeSize Professional, en la pestaña Detalles, columna Asignada, si la opción "Rastrear enlaces duros NTFS" está habilitada.
Aquí hay un ejemplo para la carpeta winsxs (7.5Gb en oposición para 10):
Recibir el valor número 3 sigue siendo una pregunta para mí. Aunque pude obtener un límite inferior usando Total Commander con el complemento NL_Info. Lo que tengo es un tamaño ocupado por archivos que tienen un solo enlace duro (archivos únicos). Fue alrededor de 5 Gb para un ejemplo dado.
Así que tratando de expandir harrymc responder o decir en otras palabras.
fuente
Puede usar ln.exe para mostrar el "tamaño verdadero" de un árbol de directorios:
Solo detectará enlaces duros debajo de esa carpeta de inicio.
fuente