Por que du -sl mostra tamanhos diferentes para a origem e o resultado de um cp -rl?

5

Eu usei cp -rl para copiar uma pasta. Ao medir o tamanho da fonte e do resultado da cópia du -sl retorna tamanhos ligeiramente diferentes, mesmo que diff confirme que seu conteúdo é idêntico:

$ cp -rl folderA/ folderB/
$ du -sl folderA folderB
98561224 folderA
98590512 folderB
$ diff --brief -ra folderA/ folderB/
$

Ambas as pastas residem no mesmo disco rígido, nenhuma modificação foi feita entre a cópia e a medida. Não encontrei nada na documentação de du e cp , o que poderia explicar a diferença.

    
por Laurent Giroud 14.07.2011 / 21:24

1 resposta

2

Tentei fazer isso sozinho e descobri que a discrepância de tamanho é proveniente dos arquivos de diretório. Como eles não são hardlinked, são novos arquivos criados, talvez não com os mesmos metadados?

Para ilustrar isso, execute os seguintes comandos:

ls -alR folderA/ | grep -v '^d' | awk '{total += $5} END {print "Total:", total}'
ls -alR folderB/ | grep -v '^d' | awk '{total += $5} END {print "Total:", total}'

Esses tamanhos devem ser idênticos (arquivos dir não incluídos). Você pode imprimir as listagens com os tamanhos de diretório e diferenciar os resultados para descobrir quais diretórios são exatamente diferentes.

    
por 14.07.2011 / 22:01