Se você puder começar de novo, use apenas tar
. Tem um "modo de acréscimo" com a opção r
:
$ ls t.tar
ls: cannot access t.tar: No such file or directory
$ tar rvf t.tar t.c
t.c
$ tar rvf t.tar t.cpp
t.cpp
$ tar tf t.tar
t.c
t.cpp
(Como você pode ver, o arquivo tar não precisa existir para usar o modo append, então deve ser muito fácil de usar para o seu caso.)
Se você não tem o privilégio de uma implementação completa do GNU tar, awk
deve poder ordenar o arquivo mesclado com algo semelhante (retirado de este post do Stack Overflow):
awk -vRS="--myboundary" '{ print $0 > NR".jpg" }' yourfile
Isso criará arquivos chamados 1.jpg
, 2.jpg
, etc. Problema: ele adiciona um \n
perdido no final do arquivo.
Supondo que você tenha truncate
e stat
em seu ambiente, você pode corrigir esses arquivos com:
truncate -s $(( $(stat -c %s 1.jpg) - 1 )) 1.jpg
Se você não tiver stat
, precisará de algo mais para descobrir o nome do arquivo (a análise da saída de ls
pode ser aceita nessa circunstância, já que você conhece os nomes dos arquivos são são). Se você não tiver truncate
, poderá fazer o truque com dd
ou possivelmente com head
ou tail
.
Ou você pode ignorar o \n
à direita, é provável que as imagens sejam exibidas corretamente, independentemente.
Demo:
$ cp orig.1.png blob
$ echo -n "HELLOHELLO" >> blob
$ cat orig.2.png >> blob
$ ls -l
total 36
-rw-r--r-- 1 test test 14916 Dec 30 19:42 blob
-rw-r--r-- 1 test test 5735 Dec 30 19:41 orig.1.png
-rw-r--r-- 1 test test 9171 Dec 30 19:41 orig.2.png
$ awk -vRS="HELLOHELLO" '{print $0 > "new."NR".png"}' blob
$ ls -l
total 56
-rw-r--r-- 1 test test 14916 Dec 30 19:42 blob
-rw-r--r-- 1 test test 5736 Dec 30 19:43 new.1.png
-rw-r--r-- 1 test test 9172 Dec 30 19:43 new.2.png
-rw-r--r-- 1 test test 5735 Dec 30 19:41 orig.1.png
-rw-r--r-- 1 test test 9171 Dec 30 19:41 orig.2.png
$ for i in new* ; do truncate -s $(( $(stat -c %s $i) - 1 )) $i ; done
$ ls -l
total 56
-rw-r--r-- 1 test test 14916 Dec 30 19:42 blob
-rw-r--r-- 1 test test 5735 Dec 30 19:43 new.1.png
-rw-r--r-- 1 test test 9171 Dec 30 19:43 new.2.png
-rw-r--r-- 1 test test 5735 Dec 30 19:41 orig.1.png
-rw-r--r-- 1 test test 9171 Dec 30 19:41 orig.2.png
$ md5sum *.png
70718d7b9e717206b4a8455ea32b51ed new.1.png
531099b9527f5fc2b623a3f724573ea9 new.2.png
70718d7b9e717206b4a8455ea32b51ed orig.1.png
531099b9527f5fc2b623a3f724573ea9 orig.2.png