Como extrair o arquivo cpio concatenado?

4
% find a/ | cpio -o | gzip -c > alpha.gz
% find b/ | cpio -o | gzip -c > bravo.gz
% cat alpha.gz beta.gz > charlie.gz
% gunzip charlie.gz

Agora eu recebo o arquivo charlie, que deve ser um arquivo cpio concatenado. Mas cpio -id < charlie apenas extrai o conteúdo de um /. Como eu poderia conseguir b /?

Adicionado: o tamanho de charlie é igual a alfa mais bravo. E egrep algumas palavras-chave mostraram que charlie certamente contém dados de bravo.

    
por Magicloud 01.03.2013 / 11:49

1 resposta

3

Os arquivos 'alpha' e 'bravo' contêm, de forma independente, marcadores de fim de arquivo que informam ao cpio que está pronto. Isso é útil ao ler de uma fita, porque o arquivo terminará, mas a fita poderá continuar.

Assim como a leitura de uma fita, você precisa iniciar outra execução do cpio na mesma posição; geralmente falando, porque você sabe que tem apenas arquivos do cpio, mas talvez não esteja totalmente seguro de quantos: (while cpio -id ; do :; done) < charlie ficará feliz em rodar até que os erros do cpio saiam ("fim prematuro do arquivo" quando o eof for atingido).

    
por 26.04.2013 / 15:26

Tags