Esta é uma solução bash. Eu não testei isso em arquivos reais, mas deve funcionar. Você acabou de ler o tamanho do arquivo através das ferramentas padrão e adicioná-los juntos para obter o índice atual. O primeiro arquivo é tratado como um caso especial.
Você chamaria isso como um script com todos os nomes de arquivos fornecidos como argumentos em ordem de concatenação.
#!/bin/bash
idx=0
idx_txt="idx.txt"
echo "$1 starts at 0" >$idx_txt
shift
for file in "$@" ; do
idx=$(( idx + $(ls -l|grep "$file"|awk '{print $5}') ))
echo "$file starts at $idx" >>$idx_txt
done