@derobert explicou como o du
opera.
Ele não mencionou que, a menos que você tenha um número enorme de arquivos / diretórios pequenos (então os metadados consomem uma grande quantidade de memória), então executar du
novamente imediatamente produz um resultado muito mais rápido. / p>
Um arquivo grande não torna du
lento, mas é mais provável que copiá-lo torne os caches de diretório sem memória. ( área de trabalho a capacidade de resposta pode ser melhorada definindo vm.swappiness=10
e priorizando metadados sobre dados com configurações de vm.vfs_cache_pressure=60
sysctl (coloque-os em /etc/sysctl.d/99-local
.)
Quando vários processos estão acessando o sistema de arquivos ao mesmo tempo, cada chamada do sistema obtém informações que são um instantâneo do estado quando foi executado. Por exemplo, um processo pode verificar se um arquivo existia e, em seguida, tentar abri-lo, apenas para descobrir que ele não estava mais lá. Porque outro processo tinha renomeado / removido durante esse intervalo entre as verificações. (Quando isso causa um problema / é a origem de um bug, ele é chamado de condição de corrida.)
Se a ordem da travessia do diretório du
for igual à ordem que cp
escolheu, então du
não chegará ao diretório still-modified até o final de sua execução. tempo, e assim não terá perdido muito no momento em que termina. OTOH, se du
somar o diretório em que cp
está colocando novos arquivos primeiro e, em seguida, levar outro minuto para somar o resto, o resultado será obsoleto.