Resultados divergentes con los comandos Copiar y Comparar (RoboCopy Diff Du), explique.

Resultados divergentes con los comandos Copiar y Comparar (RoboCopy Diff Du), explique.

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:

  1. Cuatro archivos en total; 2 subdirectorios más el directorio raíz ( .)
  2. Tres archivos en la raíz ( .) totalizando54081bytes. Informes DU_d_TEMP.txt58177bytes, una diferencia de4096bytes.
  3. No hay archivos directamente en el directorio /Ayuda
  4. 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.

información relacionada