Existe um formato de arquivo que suporte a concatenação em nível de arquivo?

1

É uma questão bastante teórica, mas existe algum formato de arquivo incremental (não muito obscuro) que permita anexar a um arquivo existente usando >> ou juntar vários arquivos usando um simples cat ?

archive file1 file2 > backup
archive file3 file4 >> backup
cat first.archive second.archive > full.archive

Pensei inicialmente em cpio . Mas ele usa um marcador especial TRAILER!!! no final do arquivo inicial, portanto, se você catenar dois arquivos CPIO, o segundo nunca será lido. A menos que eu tenha perdido alguma opção?

    
por Sylvain Leroux 02.10.2018 / 13:20

2 respostas

0

man tar :

   -A, --catenate, --concatenate
          Append archive to the end of another archive.  The arguments are
          treated as the names of archives to append.  All  archives  must
          be  of the same format as the archive they are appended to, oth‐
          erwise the resulting archive  might  be  unusable  with  non-GNU
          implementations of tar.  Notice also that when more than one ar‐
          chive is given, the members from archives other than  the  first
          one  will  be  accessible in the resulting archive only if using
          the -i (--ignore-zeros) option.

          Compressed archives cannot be concatenated.
    
por 02.10.2018 / 13:23
0

Não exatamente o que eu estava procurando, mas é bastante trivial remover o trailer de cpio de 280 bytes para permitir a concatenação de arquivamento:

find file1 file2 | cpio -o > part1.cpio
find file3 file4 | cpio -o > part2.cpio

head -c-280 part1.cpio | cat - part2.cpio > full.cpio

Ainda me pergunto se há algum formato de arquivo não usando um bloco de trailer.

    
por 02.10.2018 / 14:25

Tags