Resultados divergentes com os comandos Copiar e Comparar (RoboCopy Diff Du), por favor explique.

1

Com o Windows 7 Professional de 64 bits ...

usou um arquivo em lote e o RoboCopy.exe para copiar

4 arquivos e 2 diretórios do
c: \ temp = SDD (unidade de estado sólido) para

r: \ temp = pen drive USB (flash drive) com comando:

"C: \ WINDOWS \ system32 \ ROBOCOPY.EXE" "D: \ TEMP" "R: \ TEMP" / V / TEE / S / E / CÓPIA: DAT / DCOPY: T / NP / XJ / R: 1000000 / W: 30 /LOG:r:\RoboCopyInfo.LOG

Pergunta: Por que o
diff.exe veja acima copie os resultados do comando via RoboCopy como Ok, sem erro, mas,
  du.exe para arquivos de texto vê a diferença?

"C: \ Arquivos de programas \ Gow \ bin \ DIFF.exe" -q -r "D: \ TEMP" "R: \ TEMP"

:: DIFF.exe = diff (diffutils do GNU) 2.8.7 link

:: -q = Saída somente se os arquivos diferem.

:: -r = Compara recursivamente quaisquer subdiretórios encontrados.

:: "D: \ TEMP" = Arquivos de origem no SDD (Solid State Drive).

:: "R: \ TEMP" = A unidade de destino é HDD ou pendrive (pen drive), substitua R pela letra apropriada.

:: DIFF.exe O status de saída é 0 se as entradas forem iguais, 1 se diferente, 2 se houver problemas.

Mas, du.exe para arquivos de texto são exibidos como arquivos em lotes diferentes:

d:

cd \

cd temp

"C: \ Arquivos de programas \ Gow \ bin \ du.exe" -a -b -c -P -S -x & rt; \ DU_d_TEMP.txt

r:

cd \

cd temp

"C: \ Arquivos de programas \ Gow \ bin \ du.exe" -a -b -c -P -S -x & rt; \ DU_r_TEMP.txt

:: du.exe = Uso de disco (GNU coreutils) 5.3.0 link

:: "D: \ TEMP" = Arquivos de origem no SDD (Solid State Drive).

:: "R: \ TEMP" = A unidade de destino é HDD ou pendrive (pen drive), substitua R pela letra apropriada.

:: -a = conta contagens para todos os arquivos, não apenas diretórios

:: -b = bytes, equivalente a '- tamanho -aparente - tamanho do bloco = 1'

:: -c = total, produz um total geral

:: -P = --no-dereference, não segue nenhum link simbólico (este é o padrão)

:: -S = --separate-dirs, não inclui tamanho dos subdiretórios

:: -x = --one-file-system ignora diretórios em diferentes sistemas de arquivos

DU_d_TEMP.txt

908 ./cicon9.gif

18855 ./Help/HTML/usage.htm

27047 ./Help/HTML

0 ./Ajuda

297 ./OutPut 1 .log

52876 ./Q.EXE

58177.

85224 no total

DU_r_TEMP.txt

908 ./cicon9.gif

297 ./OutPut 1 .log

52876 ./Q.EXE

18855 ./Help/HTML/usage.htm

18855 ./Help/HTML

0 ./Ajuda

54081.

72936 no total

arquivos de texto du.exe vêem uma diferença de

12288 bytes (85224 - 72936)

Pergunta: Por que o
diff.exe veja acima copie os resultados do comando via RoboCopy como Ok, sem erro, mas,
  du.exe para arquivos de texto vê a diferença?

-

    
por Joseph 02.10.2017 / 05:54

1 resposta

0

Eu meio que hesito em colocar isso como uma resposta, mas tem algumas explicações possíveis. Eu não estou familiarizado com du ou diff, mas eu assumo que o diff compara os arquivos e reporta as diferenças, enquanto o du informa o tamanho dos arquivos e diretórios para todos os arquivos e diretórios. Resumo dos arquivos copiados, observando os arquivos do resultado:

  1. Quatro arquivos no total; 2 subdiretórios mais o diretório raiz ( . )
  2. Três arquivos na raiz ( . ) totalizando 54081 bytes. DU_d_TEMP.txt reporta 58177 bytes, uma diferença de 4096 bytes.
  3. Nenhum arquivo diretamente no diretório / Help
  4. Um arquivo em / Help / HTML dir totalizando 18855 bytes. No entanto, DU_d_TEMP.txt reporta 27047 bytes em / Help / HTML, uma diferença de 8192 bytes.

Explicação 1 : Existem arquivos / junções do sistema / ocultos em D: que o Robocopy foi ignorado ou não pôde ser copiado. Possivelmente em um sistema de arquivos diferente? (perguntando por que o sinalizador -x foi usado em du) Isso é improvável , pois o Robocopy ignora a maioria dos atributos do arquivo de origem ao selecionar arquivos para copiar. No entanto, se ele selecionou o arquivo para copiar, mas não conseguiu, é possível du e diff podem ignorar o sistema / arquivo oculto em si, mas du detectou que o espaço foi usado naquele diretório. Sem conhecer a configuração completa, o (s) sistema (s) de arquivos, as unidades / máquinas conectadas, etc., nem o arquivo de log do Robocopy, ainda não posso descartá-lo. Por exemplo, veja esta resposta no fórum askubuntu sobre arquivos em uma partição Windows podendo ser visto pelo Ubuntu, mas não pelo Windows.

Explicação 2 : O sistema de arquivos em D: armazena arquivos de maneira diferente do sistema de arquivos em R :. 4096 bytes é um tamanho de setor comum em unidades modernas, portanto, os dois arquivos maiores (em oposição aos arquivos abaixo de 1 KB) nos diretórios raiz ( . ) e / Help / HTML / podem ter um setor extra ( 4096 bytes) ou dois ( 8192 bytes) alocados para o arquivo que não é usado.

Não estou dizendo que estas são as únicas duas explicações, mas estas são duas explicações possíveis . Se você ainda tiver, postar o arquivo de log do Robocopy pode excluir a Explicação 1.

    
por 22.11.2017 / 20:25