Cpio: различия между версиями
[непроверенная версия] | [непроверенная версия] |
Omerta13 (обсуждение | вклад) мНет описания правки |
|||
Строка 1: | Строка 1: | ||
{{lowercase|cpio}} |
{{lowercase|cpio}} |
||
'''cpio''' (сокр. от {{lang-en|Copy Input/Output}}) — двоичный [[архиватор]] и [[формат файла]]. [[Утилита]] cpio применялась как ленточный архиватор ( |
'''cpio''' (сокр. от {{lang-en|Copy Input/Output}}) — двоичный [[архиватор]] и [[формат файла]]. [[Утилита]] cpio применялась как ленточный архиватор ({{lang-en|tape archiver}}), первоначально являвшийся частью [[PWB/UNIX]], а также частью [[UNIX System III]] и [[UNIX System V]]. Однако, применение [[tar]], являвшегося составной частью [[Research Unix]], за счет чего он становился легко доступным, наталкивало на мысль о том, что он являлся более удобным решением.<ref name="PRL97">Peek J, O’Reilly T, Loukides M. 1997. Unix Power Tools. O’Reilly & Associates, Inc. ISBN 1-56592-260-3.</ref> Но использование cpio менеджером пакетов [[RPM]], [[initrd|initramfs]] [[Linux (ядро)|ядра Linux]] версий 2.6, а также установщиком архивов «[[Pax (Unix)|pax]]» от Apple позволило cpio и в дальнейшем оставаться одним из важных форматов архивов. |
||
== cpio-архив == |
== cpio-архив == |
Версия от 09:14, 25 января 2011
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.
Примеры использования
Архивация
Если вы хотите заархивировать целиком дерево каталогов, то команда find может передать список файлов в cpio:
% find . -depth -print | cpio -ov > tree.cpio
Копирование
Cpio копирует файлы из одного дерева каталогов в другой при этом сочетая шаги copy-out и copy-in без «настоящего» использования архивации. Она считывает список файлов для копирования из стандартного потока ввода; целевой каталог, в который их нужно скопировать, указывается как обязательный аргумент (пример для linux, видимо).
% 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.
Ссылки
- Руководство по GNU cpio (англ.)
- Официальный веб-сайт GNU cpio (англ.)
- TAR vs. CPIO (англ.)
- Формат архивов CPIO (англ.)
- Архивирование и компрессия. Утилита cpio (рус.)
- Учимся использовать команду cpio (рус.)