Use tar
, mas renuncie à parte gzipante. O objetivo do TAR é converter arquivos em um único fluxo (significa arquivo de fitas). Dependendo do seu processo, você poderia gravar o fluxo em um disco e copiá-lo, mas, com mais eficiência, você poderia canalizá-lo (por exemplo, via SSH) para a outra máquina - possivelmente descompactando-o ao mesmo tempo.
Como o processo é IO e não um uso intensivo da CPU, a parelelização do processo não ajudará muito, se for o caso. Você reduzirá o tamanho da transferência de arquivos (se os arquivos não forem exatamente divisíveis por tamanho de bloco), e você economizará muito por não ter o back-and-forward para negociar cada arquivo.
Para criar um arquivo tar descompactado:
tar -cf file.name /path/to/files
Para transmitir pela rede:
tar -c /path/to/files | ssh [email protected] 'cd /dest/dir && tar -x'
Nota: Se estiver escrevendo um arquivo intermediário em um disco rígido como no exemplo 1, pode ser mais rápido gzipar o arquivo se houver uma quantidade razoável de compactação, pois isso reduzirá a quantidade a ser gravada no disco, que é o pare lento do processo.