gzip -cd foo.cpio.gz | cpio -idmv
- я: извлечение (ввод)
- d: создавать каталоги
- m: сохранить mtime
- V: многословный
Я получил дистрибутив программного обеспечения Unix в виде сжатого файла cpio. Какая лучшая команда для извлечения файлов?
gzip -cd foo.cpio.gz | cpio -idmv
mkdir archive cd archive zcat ../archive.cpio.gz | cpio -idmv --no-absolute-filenames
Хотя это старый вопрос, он показывается высоко в Google, поэтому я подумал, что могу его обновить. Я в целом согласен с принятым ответом, но вы должны добавить «--no-absolute-filenames», если вы не собираетесь перезаписывать важные системные файлы на вашем компьютере. Кроме того, лично я предпочитаю "zcat", а не "gzip -cd" или "gunzip -c".
Наконец, обратите внимание, что вам нужно запустить cpio от имени пользователя root (например, sudo), если вы извлекаете корневую файловую систему, содержащую узлы устройства.
Эта страница Википедии cpio
содержит несколько хороших заметок.
Для получения более подробной информации обратитесь к cpio
руководству .
Ссылка с той же страницы Википедии обсуждает сравнение с tar
архивами .
И вот пример использования cpio
с tar
форматом .
For example, to extract the archived contents of /etc/httpd/ to the current directory, creating subdirectories ./etc/httpd/
mkdir restored-etc-httpd cd restored-etc-httpd zcat archive.cpio.gz | cpio -idmv --no-absolute-filenames "*etc/httpd/*"
The accepted answer and Matt's were both helpful to me but I was stumped for a while because of three details:
--no-absolute-filenames
must precede the pattern on the command line/
from filenames, the matching pattern must also omit the leading /