Se você tiver uma versão recente de sort
(8.11+), você poderá acelerar o processo com a opção sort --parallel=N
: você compartilhará o trabalho nos N núcleos. Isso pode realmente impulsionar o seu trabalho.
sort --parallel=N
Para o algoritmo de classificação e se você quiser ver, por exemplo, Detalhes algorítmicos do comando Ordenação do UNIX .
Ele usa a variação de alguns Merge
ordenação : isso significa que ele separa em bloco todo o trabalho, e após mesclar os blocos classificados. Você pode encontrar peças em /tmp
.
Ele lê peças que se encaixam na memória. Se você tentar somar o tamanho de todas as tmp
peças que encontrar, obterá um valor não necessário relacionado à porcentagem do trabalho realizado.
Mas se for muito menos, você pode deduzir que ainda precisa de arquivo.
Eu tenho medo de que você não possa saber o tamanho da saída processada até a última passagem. O ponto chave deve estar na última passagem de classificação quando ela for mesclar a metade 2 apenas classificada. Pode continuar criando a primeira metade e depois a segunda. Ou pode continuar processando em paralelo as duas metades. Mas no primeiro caso, usará menos espaço no disco rígido. Então, suponho que você não possa excluir o arquivo.
Para ter uma resposta final para sua dúvida, você deve ver o código baixando sua versão do tipo de gnu ou procurando do git .