Jump to content

cpio

cpio
Оригинальный автор(ы) Дик Хейт
Разработчик(и) AT&T Bell Laboratories
Первоначальный выпуск 1977 год ; 47 лет назад ( 1977 )
Операционная система Unix и Unix-подобные
Тип Команда
Лицензия GNU cpio: GPLv3
libarchive bsdcpio: новая лицензия BSD
cpio
Расширение имени файла
.cpio
Тип интернет-СМИ
приложение/x-cpio
Единый идентификатор типа (UTI) public.cpio-archive
Тип формата Архив файлов

cpio — это общая утилита архиватора файлов и связанный с ней формат файлов . В основном он устанавливается в Unix-подобных компьютерных операционных системах. Программная утилита изначально задумывалась как программа архивирования лент как часть Programmer's Workbench ( PWB/UNIX ) и была компонентом практически каждой операционной системы Unix, выпущенной после этого. Его название происходит от фразы copy in and out , подробно описывающей использование программой стандартного ввода и стандартного вывода в ее работе.

Все варианты Unix также поддерживают другие программы резервного копирования и архивирования, такие как tar , которая получила более широкое признание. [1] Использование cpio менеджером пакетов RPM , в initramfs ядра Linux Apple , начиная с версии 2.6, и в установщике ( pax ) делает cpio важным инструментом архивирования.

С момента своего первоначального дизайна cpio и формат его архивного файла претерпели несколько, иногда несовместимых, изменений. Наиболее примечательным является изменение, которое теперь является рабочей опцией, от использования двоичного формата метаинформации архивного файла к представлению на основе ASCII .

cpio был удален из POSIX.1-2001 в пользу pax , [2] аналогичная утилита, которая была представлена ​​в предыдущей версии стандарта.

cpio появился в версии 7 Unix как часть проекта Programmer's Workbench . [3]

Формат работы и архива

[ редактировать ]

cpio изначально был разработан для последовательного и непрерывного хранения файловых архивов резервных копий на ленточном устройстве. Он не сжимает какой-либо контент, но полученные архивы часто сжимаются с помощью gzip или других внешних компрессоров.

Создание архива

[ редактировать ]

При создании архивов во время операции копирования , инициированной командой -o флаг командной строки, cpio считывает имена путей к файлам и каталогам из своего стандартного канала ввода и записывает результирующий поток байтов архива в свой стандартный вывод. Поэтому Cpio обычно используется с другими утилитами, которые создают список файлов для архивирования, например с программой find .

Результирующий архив cpio представляет собой последовательность файлов и каталогов, объединенных в один архив, разделенных разделами заголовков с метаинформацией файла, такой как имя файла, номер индексного дескриптора, право собственности, разрешения и временные метки. По соглашению имя файла архива обычно имеет расширение cpio .

В этом примере используется утилита find для создания списка имен путей, начиная с текущего каталога, для создания архива дерева каталогов:

$ find . -depth -print | cpio -o > /path/archive.cpio

Во время операции копирования , инициируемой флагом командной строки i , cpio считывает архив со своего стандартного ввода и воссоздает заархивированные файлы в файловой системе операционной системы.

$ cpio -i -vd < archive.cpio

Флаг командной строки d сообщает cpio создавать каталоги по мере необходимости. Флаг v ( verbose ) перечисляет имена файлов в том виде, в каком они были извлечены.

Любые оставшиеся аргументы командной строки, кроме флагов опций, представляют собой подстановки, подобные оболочке шаблоны ; Из архива копируются только файлы с совпадающими именами. В следующем примере извлекается файл /etc/fstab из архива:

$ cpio -i -d /etc/fstab < archive.cpio

Файлы, содержащиеся в архиве cpio, можно просмотреть с помощью этого вызова:

$ cpio -t < archive.cpio

Список может быть полезен, поскольку архив cpio может содержать абсолютные, а не относительные пути (например, /bin/ls или bin/ls ).

Копировать

[ редактировать ]

Cpio поддерживает третий тип операций копирования файлов . Он инициируется с помощью флага опции сквозной передачи ( п ). Этот режим объединяет этапы копирования и копирования без фактического создания файлового архива. В этом режиме cpio считывает имена путей со стандартного ввода, как и операция копирования , но вместо создания архива он воссоздает каталоги и файлы в другом месте файловой системы, как указано в пути, указанном в командной строке. аргумент.

В этом примере дерево каталогов копируется, начиная с текущего каталога, в другой путь new-path в файловой системе, сохраняя время изменения файлов (флаг m ), создавая каталоги по мере необходимости ( d ), безоговорочно заменяя любые существующие файлы ( u ), создавая список прогресса на стандартном выходе ( v ):

$ find . -depth -print | cpio -p -dumv new-path

Стандартизация POSIX

[ редактировать ]

Утилита cpio стандартизирована в POSIX .1-1988, но не включена в POSIX.1-2001 из-за размера файла и других ограничений. Например, версия GNU предлагает различные варианты формата вывода, такие как «bin» (по умолчанию и устаревший) и «ustar» (POSIX tar), имеющие ограничения на размер файла в 2 147 483 647 байт (2 ГБ) и 8 589 934 591 байт (8 ГБ). ), соответственно. [4]

Форматы файлов cpio, ustar и pax определены стандартом POSIX.1-2001 для утилиты pax , которая в настоящее время совместима с POSIX 1003.1-2008 и поэтому может читать и записывать архивы в форматах cpio и ustar.

Реализации

[ редактировать ]

Большинство дистрибутивов Linux предоставляют версию GNU. cpio. [5] FreeBSD и macOS используют лицензию BSD. bsdcpio поставляется с лиархивом . [6]

См. также

[ редактировать ]
  1. ^ Пик, Дж; О'Рейли, Т; Лукидес, М (1997). Электроинструменты Unix . O'Reilly & Associates, Inc. с. 38.13. ISBN  1-565-92260-3 .
  2. ^ «Обоснование» . pubs.opengroup.org . Проверено 18 июля 2024 г.
  3. ^ Макилрой, доктор медицины (1987). Читатель Research Unix: аннотированные выдержки из Руководства программиста, 1971–1986 (PDF) (Технический отчет). CSTR. Лаборатории Белла. 139.
  4. ^ cpio информационный документ , в узле «Параметры» , страница руководства bsdcpio.
  5. ^ "Цпио" . GNU.org.
  6. ^ «лиархив» .
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 6debb3e6f369c4095f7559ae642e00ac__1721333760
URL1:https://arc.ask3.ru/arc/aa/6d/ac/6debb3e6f369c4095f7559ae642e00ac.html
Заголовок, (Title) документа по адресу, URL1:
cpio - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)