Con Windows 7 Profesional de 64 bits...
usó un archivo por lotes y RoboCopy.exe para copiar
4 archivos y 2 directorios desde
c:\temp = SDD (Unidad de estado sólido) a
r:\temp = memoria USB (unidad flash) con comando:
"C:\WINDOWS\system32\ROBOCOPY.EXE" "D:\TEMP" "R:\TEMP" /V /TEE /S /E /COPY:DAT /DCOPY:T /NP /XJ /R:1000000 /W :30 /LOG:r:\RoboCopyInfo.LOG
Pregunta: ¿Por qué
diff.exe ve los resultados del comando de copia anterior a través de RoboCopy como Ok, no hay error, pero
du.exe a archivos de texto ve una diferencia?
"C:\Archivos de programa\Gow\bin\DIFF.exe" -q -r "D:\TEMP" "R:\TEMP"
:: DIFF.exe = diff (GNU diffutils) 2.8.7 https://github.com/bmatzelle/gow/releases
:: -q = Salida solo si los archivos difieren.
:: -r = Compara recursivamente cualquier subdirectorio encontrado.
:: "D:\TEMP" = Archivos de origen en SDD (Unidad de estado sólido).
:: "R:\TEMP" = La unidad de destino es HDD o memoria USB (unidad flash), reemplace R con la letra adecuada.
:: DIFF.exe El estado de salida es 0 si las entradas son iguales, 1 si son diferentes, 2 si hay problemas.
Pero du.exe a archivos de texto se ve arriba como un archivo por lotes diferente:
d:
cd\
temperatura del cd
"C:\Archivos de programa\Gow\bin\du.exe" -a -b -c -P -S -x >r:\DU_d_TEMP.txt
r:
cd\
temperatura del cd
"C:\Archivos de programa\Gow\bin\du.exe" -a -b -c -P -S -x >r:\DU_r_TEMP.txt
:: du.exe = Uso del disco (GNU coreutils) 5.3.0 https://github.com/bmatzelle/gow/releases
:: "D:\TEMP" = Archivos de origen en SDD (Unidad de estado sólido).
:: "R:\TEMP" = La unidad de destino es HDD o memoria USB (unidad flash), reemplace R con la letra adecuada.
:: -a = recuentos de escritura para todos los archivos, no solo para los directorios
:: -b = bytes, equivalente a `--tamaño-aparente --tamaño-de-bloque=1'
:: -c = total, produce un total general
:: -P = --no-dereference, no siga ningún enlace simbólico (este es el valor predeterminado)
:: -S = --separate-dirs, no incluye el tamaño de los subdirectorios
:: -x = --one-file-system omitir directorios en diferentes sistemas de archivos
DU_d_TEMP.txt
908 ./cicon9.gif
18855 ./Ayuda/HTML/uso.htm
27047 ./Ayuda/HTML
0 ./Ayuda
297 ./Salida 1 .log
52876 ./Q.EXE
58177.
85224 en total
DU_r_TEMP.txt
908 ./cicon9.gif
297 ./Salida 1 .log
52876 ./Q.EXE
18855 ./Ayuda/HTML/uso.htm
18855 ./Ayuda/HTML
0 ./Ayuda
54081.
72936 en total
Los archivos de texto du.exe ven una diferencia de
12288 bytes (85224 - 72936)
Pregunta: ¿Por qué
diff.exe ve los resultados del comando de copia anterior a través de RoboCopy como Ok, no hay error, pero
du.exe a archivos de texto ve una diferencia?
--
Respuesta1
Dudo un poco en poner esto como respuesta, pero tiene un par de explicaciones posibles. No estoy familiarizado con du o diff, pero supongo que diff compara archivos e informa las diferencias, mientras que du informa los tamaños de archivos y directorios para todos los archivos y directorios. Resumen de archivos copiados mirando los archivos de resultados:
- Cuatro archivos en total; 2 subdirectorios más el directorio raíz (
.
) - Tres archivos en la raíz (
.
) totalizando54081bytes. Informes DU_d_TEMP.txt58177bytes, una diferencia de4096bytes. - No hay archivos directamente en el directorio /Ayuda
- Un archivo en /Help/HTML dir totalizando18855bytes. Sin embargo, DU_d_TEMP.txt informa27047bytes en /Ayuda/HTML, una diferencia de8192bytes.
Explicación 1: Hay archivos o uniones del sistema/ocultos en D: que Robocopy ignoró o no pudo copiar. ¿Posiblemente en un sistema de archivos diferente? (preguntándose por qué el-XLa bandera se usó en du) Esto esimprobable, ya que Robocopy ignora la mayoría de los atributos del archivo fuente al seleccionar archivos para copiar. Sin embargo, si seleccionó el archivo para copiar, pero no pudo, esposibledu y diff pueden ignorar el sistema/archivo oculto, pero du detectó que se utilizó espacio en ese directorio. Sin conocer la configuración completa, los sistemas de archivos, las unidades/máquinas conectadas, etc. ni ver el archivo de registro de Robocopy, no puedo descartarlo todavía. Por ejemplo, veresta respuestaen el foro de Askubuntu sobre los archivos en una partición de Windows que Ubuntu puede ver pero no Windows.
Explicación 2: El sistema de archivos en D: almacena archivos de manera diferente que el sistema de archivos en R:. 4096 bytes es un tamaño de sector común en las unidades modernas, por lo que los dos archivos más grandes (a diferencia de los archivos de menos de 1 KB) en los .
directorios raíz ( ) y /Ayuda/HTML/ pueden tener un sector adicional (4096bytes) o dos (8192bytes) asignados al archivo que no se utiliza.
No digo que estas sean las dos únicas explicaciones, pero sí son dos.posibleexplicaciones. Si todavía lo tiene, publique el archivo de registro de RobocopypodríaDescartar Explicación 1.