O maior obstáculo para uma ferramenta como essa existente é que a menos que o tamanho de cada arquivo (exceto o último) sendo concatenado seja exatamente divisível pelo tamanho do bloco (estou um pouco incerto sobre a terminologia correta aqui), você acabar com "lacunas" com dados de lixo entre seus arquivos concatenados no arquivo final.
Isso ocorre porque os dados do arquivo são normalmente armazenados em blocos com tamanhos específicos no sistema de arquivos, de modo que um arquivo de 618 bytes armazenado em um sistema de arquivos usando blocos de 32 bytes ocuparia 618/32 = 19.3125 blocos, ou seja, 19 blocos completos e cerca de 1/3 de um bloco adicional.
Supondo que você queria combinar dois arquivos como este sem considerar o meu obstáculo, você simplesmente apontaria o "novo arquivo" para os blocos do primeiro arquivo, mais os blocos do segundo arquivo, certo?
Com essa abordagem ingênua, você acabaria com um arquivo de 40 blocos, com o bloco 20 sendo 1/3 sensível e 2/3 de lixo, e o bloco 21 iniciando os dados do segundo arquivo.
Com alguns formatos de arquivo, você pode fazer alguns cálculos e manipulações de cabeçalhos de arquivos para dizer basicamente ao aplicativo que usará o arquivo para pular as partes de lixo, mas isso é mais uma solução de band-aid do que uma adequado.