cpio (cpio)
Cpio | |
---|---|
Тип | Архиватор |
Разработчик | Проект GNU |
Написана на | C |
Операционная система | Unix-like |
Последняя версия | 2.15 (14 января 2024) |
Лицензия | GPL |
Сайт | gnu.org/software/cpio/ |
cpio (от англ. Copy Input/Output) — двоичный архиватор и формат файла. Утилита cpio применялась как ленточный архиватор (англ. tape archiver), первоначально являвшийся частью PWB/UNIX, а также частью UNIX System III и UNIX System V. Однако применение tar, являвшегося составной частью Research Unix, за счёт чего он становился легко доступным, наталкивало на мысль о том, что он являлся более удобным решением.[1] Но использование cpio менеджером пакетов RPM, initramfs ядра Linux версий 2.6, а также установщиком архивов «pax» от Apple позволило cpio и в дальнейшем оставаться одним из важных форматов архивов.
cpio-архив
[править | править код]Архивация cpio, по сути, представляет собой поток файлов и каталогов в единый архив, зачастую получающий расширение .cpio. Архив имеет заголовочную информацию, позволяющую приложению, такому, как, например, GNU cpio, извлекать файлы и каталоги в файловую систему. Заголовок архива cpio также содержит дополнительную информацию, как, например, имя файла, время создания, владельца и права доступа (разрешения).
cpio-архив по функциональности схож с tar-архивом и создавался для хранения резервных копий на ленточных устройствах (например, стримерах) последовательным способом. Как и формат tar, CPIO-архивы часто сжимаются при помощи Gzip и поставляются в виде файлов с расширением .cpgz (или .cpio.gz).
Oracle поставляет значительную часть своего программного обеспечения в формате cpio.
POSIX и cpio
[править | править код]Утилита cpio была стандартизована в POSIX.1-1988. Однако от этого пришлось отказаться в последующих версиях, начиная с POSIX.1-2001, из-за ограничения в 8 Гб на файл. POSIX объявляет в качестве стандарта утилиту pax, которая может быть использована вместо cpio для чтения и создания архивов.
GNU cpio
[править | править код]Приложение GNU cpio — простой инструмент, который может использоваться для помещения информации в архив формата cpio или tar. Приложение cpio — свободное, и доступно на официальном веб-сайте движения GNU[2].
Примеры использования
[править | править код]Для архивации целиком дерева каталогов (перед этим: cd нужная папка), то команда find может передать список файлов и каталогов в cpio: find ./* | cpio -o > tree.cpio
Cpio копирует файлы из одного дерева каталогов в другой, при этом сочетая шаги copy-out и copy-in без «настоящего» использования архивации. Она считывает список файлов для копирования из стандартного потока ввода; целевой каталог, в который их нужно скопировать, указывается как обязательный аргумент: find . -depth -print0 | cpio —null -pvd new-dir
Для извлечения файлов из cpio-архива передаётся имя архива утилите cpio через стандартный ввод (при этом производится перезапись без подтверждения): cpio -id < cpiofile. Флаг -i указывает cpio считать архив для извлечения файлов, а флаг -d говорит cpio создать при необходимости соответствующие каталоги. Также возможно указать флаг -v для вывода списка имён извлечённых файлов.
Все дополнительные аргументы командной строки являются shell-образными glob-шаблонами; только те файлы в архиве, чьи имена совпадают, по крайней мере, с одним шаблоном, могут быть скопированы из архива. В следующем примере извлекается etc/fstab из архива (формат содержимого архива должен сначала проверяться командой `cpio -l` для проверки того, как хранится путь): cpio -id etc/fstab < cpiofile.
Примечания
[править | править код]- ↑ Peek J, O’Reilly T, Loukides M. 1997. Unix Power Tools. O’Reilly & Associates, Inc. ISBN 1-56592-260-3.
- ↑ Cpio - GNU Project - Free Software Foundation (FSF) . Дата обращения: 7 декабря 2009. Архивировано 25 ноября 2009 года.
Ссылки
[править | править код]- Руководство по GNU cpio Архивная копия от 6 мая 2010 на Wayback Machine (англ.)
- Официальный веб-сайт GNU cpio Архивная копия от 25 ноября 2009 на Wayback Machine (англ.)
- TAR vs. CPIO (англ.)
- Формат архивов CPIO Архивная копия от 24 июля 2009 на Wayback Machine (англ.)
- Архивирование и компрессия. Утилита cpio Архивная копия от 23 июля 2009 на Wayback Machine (рус.)
- Учимся использовать команду cpio Архивная копия от 22 января 2009 на Wayback Machine (рус.)