![Базовая команда извлечения cpio, эквивалент 'tar xzvf'?](https://rvso.com/image/1213753/%D0%91%D0%B0%D0%B7%D0%BE%D0%B2%D0%B0%D1%8F%20%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D0%B0%20%D0%B8%D0%B7%D0%B2%D0%BB%D0%B5%D1%87%D0%B5%D0%BD%D0%B8%D1%8F%20cpio%2C%20%D1%8D%D0%BA%D0%B2%D0%B8%D0%B2%D0%B0%D0%BB%D0%B5%D0%BD%D1%82%20'tar%20xzvf'%3F.png)
Я получил дистрибутив программного обеспечения Unix в виде сжатого файла cpio. Какая команда лучше всего подходит для извлечения файлов?
решение1
gzip -cd foo.cpio.gz | cpio -idmv
- i : извлечение (вход)
- d : создать каталоги
- m : сохранить mtime
- v : многословный
решение2
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), если вы извлекаете корневую файловую систему, содержащую узлы устройств.
решение3
Например, чтобы извлечь архивное содержимое /etc/httpd/ в текущий каталог, создайте подкаталоги ./etc/httpd/
mkdir restored-etc-httpd
cd restored-etc-httpd
zcat archive.cpio.gz | cpio -idmv --no-absolute-filenames "*etc/httpd/*"
Оба ответа — принятый и ответ Мэтта — были мне полезны, но на некоторое время я запутался из-за трех деталей:
- Соответствующий шаблон необходимо заключить в кавычки, чтобы он работал как шаблон :P
- Опция
--no-absolute-filenames
должна бытьпредшествоватьшаблон в командной строке - Поскольку эта опция удаляет начальные символы
/
из имен файлов, шаблон сопоставления также должен опускать начальные символы./
решение4
Эта страница Википедии наcpio
есть несколько хороших заметок.
Для получения более подробной информации см.cpio
руководство.
Ссылка с той же страницы Википедииобсуждает сравнение с tar
архивами.
И вот примериспользование cpio
с tar
форматом.