cpio - cpio

редактировать
cpio
Автор (ы) оригинала Дик Хейт
Разработчик (и) ATT Bell Laboratories
Операционная система Unix и Unix-like
Тип Команда
cpio
Расширение имени файла .cpio
Тип Интернет-носителя приложение / x-cpio
Uniform Type Identifier (UTI) public.cpio-archive
Тип форматаФайловый архиватор

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

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

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

Содержание
  • 1 История
  • 2 Операция и формат архива
    • 2.1 Создание архива
    • 2.2 Извлечение
    • 2.3 Список
    • 2.4 Копирование
  • 3 Стандартизация POSIX
  • 4 Реализации
  • 5 См. Также
  • 6 Ссылки
История

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

Операции и формат архивов

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

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

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

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

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

$ find. -глубина-отпечаток | cpio -o>/path/archive.cpio

Извлечение

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

$ cpio -i -vd < archive.cpio

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

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

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

Список

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

$ cpio -t < archive.cpio

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

Копировать

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

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

$ find. -глубина-отпечаток | cpio -p -dumv new-path
Стандартизация POSIX

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

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

Реализации

Большинство дистрибутивов Linux предоставляют версию GNU cpio. FreeBSD и macOS используйте лицензированный BSD bsdcpio, поставляемый с libarchive.

См. также
Ссылки
Последняя правка сделана 2021-05-16 07:30:13
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте