du -sb dando resultados diferentes para 2 diretórios com o mesmo conteúdo?

0

Eu tenho um diretório A com 1000 subdiretórios (000-999), cada um contendo 3500 arquivos .jpg. Eu escrevi um script PHP que copiou cada um desses arquivos para outro diretório B na mesma estrutura, ou seja, 1000 subdiretórios contendo 3500 arquivos .jpg, exceto:

    Os arquivos
  1. .jpg são renomeados para novos nomes
  2. enquanto os subdiretórios não são renomeados, mas agora eles contêm arquivos diferentes do que no diretório A

Esse script foi executado por cerca de 20 horas e, quando finalmente terminou, eu corri:

du -sb *

Em seu diretório pai para obter os tamanhos aparentes de A e B. Curiosamente, aqui está o que apareceu:

74778240380   A
74809644412   B

Eu então executei outro script PHP em B e ele acabou tendo exatamente o mesmo número de arquivos que o A. Agora estou perdido.

Por que os resultados du-sb são diferentes? Qualquer outra maneira de verificar se o processo de cópia foi um sucesso e que B é uma duplicação perfeita de A?

    
por datasn.io 13.04.2014 / 18:22

2 respostas

2

Você diz que copiou os arquivos JPEG com novos nomes. Se os novos nomes forem substancialmente mais longos que os antigos, então os novos diretórios (os subdiretórios de “B”) será maior que os diretórios antigos (os subdiretórios de “A”). (Sim, os diretórios ocupam espaço e du conta esse espaço.) Seu tamanho delta (74809644412 - 74778240380) é 31404032, que é aproximadamente 1000 × 31404. Isso é consistente com cada um dos subdiretórios 1000 obtendo 31404 bytes maiores (em média). Se cada um dos nomes dos arquivos 3500 JPEG tiver nove caracteres a mais (em média), isso será feito.

    
por 05.06.2014 / 21:36
-1

Use o comando diff:

diff -qr A B

Na página de manual -qr

   -q     Report  only  whether  the  files differ, not the details of the
      differences.

   -r     When comparing directories, recursively compare any  subdirecto-
      ries found.
    
por 05.06.2014 / 20:25