Não pensando claramente em ATM, então este é um método de round-about ...
Se você fosse arquivar a árvore (usar um método sem compactação seria mais rápido), você poderia trabalhar de duas maneiras. Arquivar a árvore (assim subdiretórios incluídos) & extrair com um 'E' (Extrair) ao invés de um 'X' (arquivos eXtract com caminho completo), os arquivos extraídos seriam colocados em um único diretório. Outra maneira de fazer o mesmo seria na criação de arquivos, para dizer "excluir caminhos de nomes". Em seguida, o arquivo criado seria estéril de caminhos, ou seja, todos os arquivos armazenados em um único diretório no arquivo morto, portanto, quando extraídos, eles também seriam extraídos dessa maneira. (Pensando que o primeiro método faz mais sentido).
(o ARJ pode fazer isso. Você acha que o 7z & RAR & ZIP também pode funcionar?)
"Flatten" era uma palavra que eu estava tentando pensar antes. E com isso, um programa de backup / sincronização provavelmente pode ser configurado para "achatar" uma estrutura de diretório.
Então, outros pensamentos ... Tar & DD? Talvez isso ajude os outros a encontrar uma resposta melhor que eu não esteja pensando em ATM.
(Faz muito tempo desde que eu usei Tar, então eu posso sair da base, mas algo da natureza de ...)
tar -cvf c:/foo/roo | tar -xvf -
Um arquivador & backup / sincronizador deve ser capaz de lidar com qualquer dups de forma automatizada.
ARJ pode. Não sabe sobre alcatrão?