Informações adicionais fornecidas nos comentários revelam que o OP está usando um método GUI para criar o arquivo .tar.gz
.
O software da GUI geralmente inclui muito mais inchaço do que o software equivalente da linha de comando equivalente, ou executa tarefas adicionais desnecessárias por causa de algum recurso "extra", como uma barra de progresso. Não me surpreenderia se o software da GUI estivesse tentando coletar uma lista de todos os nomes de arquivos na memória. É desnecessário fazer isso para criar um arquivo. As ferramentas dedicadas tar
e gzip
foram projetadas para funcionar com entrada e saída de streaming, o que significa que elas podem lidar com entradas e saídas muito maiores que a memória.
Se você evitar o programa da GUI, você pode muito provavelmente gerar este arquivo usando uma invocação de tar
diária normal como esta:
tar czf foo.tar.gz foo
onde foo
é o diretório que contém todos os seus 5 milhões de arquivos.
As outras respostas a esta questão dão-lhe alguns comandos tar
alternativos adicionais para tentar caso queira dividir o resultado em várias partes, etc ...