Как извлечь конкатенированный архив cpio?

1992
Magicloud
% 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 

Теперь я получаю файл Чарли, который должен быть составным архивом cpio. Но cpio -id < charlieтолько извлечь содержимое а /. Как я мог получить б / у?

Добавлено: Размер Чарли равен альфа плюс браво. И, например, некоторые ключевые слова показали, что Чарли, безусловно, содержит данные Браво.

4

1 ответ на вопрос

3
Gabe

Архивы 'alpha' и 'bravo' независимо содержат маркеры конца архива, которые сообщают cpio, что это сделано. Это полезно при чтении с ленты, поскольку архив заканчивается, но лента может продолжаться.

Так же, как при чтении с ленты, вам нужно запустить еще один запуск cpio из той же позиции; в общем, потому что вы знаете, что у вас есть только архивы cpio, но, возможно, вы не совсем уверены, сколько их: (while cpio -id ; do :; done) < charlieбудут продолжать работать до тех пор, пока не возникнут ошибки cpio («преждевременный конец архива», когда eof достигнут)

Извините, я принял допоздна. Magicloud 10 лет назад 0

Похожие вопросы