Cpio - Cpio
Оригинальный автор (ы) | Дик Хейт |
---|---|
Разработчики) | AT&T Bell Laboratories |
Операционная система | Unix и Unix-подобный |
Тип | Команда |
Расширение имени файла | .cpio |
---|---|
Тип интернет-СМИ | приложение / x-cpio |
Единый идентификатор типа (UTI) | public.cpio-archive |
Тип формата | Файловый архиватор |
cpio генерал файловый архиватор полезность и связанные с ней формат файла. Он в основном устанавливается на Unix-подобный компьютерные операционные системы. В программная утилита изначально задумывался как программа архивирования магнитной ленты как часть Programmer's Workbench (PWB / UNIX ), и был компонентом практически каждой операционной системы Unix, выпущенной после этого. Его название происходит от фразы копировать в и из, в подробном описании использования программой стандартный ввод и стандартный вывод в его эксплуатации.
Все варианты Unix также поддерживают другие программы резервного копирования и архивирования, такие как деготь, который получил более широкое признание.[1] Использование cpio Менеджер пакетов RPM, в initramfs программа Ядро Linux 2.6, а в Apple Установщик (человек ) сделать cpio важным инструментом архивирования.
С момента своего первоначального дизайна cpio и его формат архивных файлов претерпели несколько, иногда несовместимых, изменений. Наиболее примечательным является изменение, теперь уже действующее, от использования двоичного формата метаинформации архивного файла до ASCII -представительство.
История
cpio появился в Версия 7 Unix как часть Верстак программиста проект.[2]
Формат работы и архива
Изначально cpio был разработан для последовательного непрерывного хранения файловых архивов резервных копий на ленточном устройстве. Он не сжимает контент, но получаемые архивы часто сжимаются с использованием gzip или другие внешние компрессоры.
Создание архива
При создании архивов во время копия операция, инициированная -о флаг командной строки, cpio считывает пути к файлам и каталогам из своего стандартного входного канала и записывает результирующий поток байтов архива в свой стандартный вывод. Поэтому Cpio обычно используется с другими утилитами, которые генерируют список файлов для архивирования, такими как найти программа.
Результирующий архив cpio представляет собой последовательность файлов и каталогов, объединенных в один архив, разделенных разделами заголовка с метаинформацией файла, такой как имя файла, номер inode, право собственности, разрешения и временные метки. По соглашению, имя файла архива обычно имеет расширение файла. cpio.
В этом примере используется найти утилита для создания списка имен путей, начинающихся в текущем каталоге, для создания архива дерева каталогов:
$ найти . -глубина -принт | cpio -o> /path/archive.cpio
Добыча
Вовремя копия операция, инициированная флагом командной строки я, cpio считывает архив со стандартного ввода и воссоздает заархивированные файлы в файловой системе операционной системы.
$ cpio -i -vd
Флаг командной строки d указывает cpio создавать каталоги по мере необходимости. Флаг v (подробный) перечисляет имена файлов по мере их извлечения.
Любые оставшиеся аргументы командной строки, кроме флагов параметров, похожи на оболочку шарик -выкройки; из архива копируются только файлы в архиве с совпадающими именами. В следующем примере извлекается файл / etc / fstab из архива:
$ cpio -i -d / etc / fstab
Список
Файлы, содержащиеся в архиве cpio, могут быть перечислены с помощью этого вызова:
$ cpio -t
Список может быть полезен, поскольку архив cpio может содержать абсолютные, а не относительные пути (например, / bin / ls против. bin / ls).
Копировать
Cpio поддерживает третий тип операций: копирует файлы. Он инициируется пройти через флаг опции (п). Этот режим объединяет этапы копирования и копирования без фактического создания файлового архива. В этом режиме cpio считывает имена путей на стандартном вводе, например копия операции, но вместо создания архива он воссоздает каталоги и файлы в другом месте файловой системы, как указано в пути, заданном в качестве аргумента командной строки.
В этом примере копируется дерево каталогов, начиная с текущего каталога, по другому пути. новый путь в файловой системе, сохраняя время модификации файлов (флаг м), создавая каталоги по мере необходимости (d), безоговорочно заменяя любые существующие файлы (ты), при создании списка выполнения на стандартный вывод (v):
$ найти . -глубина -принт | cpio -p -dumv новый путь
Стандартизация POSIX
В cpio утилита стандартизирована в POSIX.1-1988, но был исключен из POSIX.1-2001 из-за ограничений размера файла (и других). Например, версия GNU предлагает различные варианты выходного формата, такие как «bin» (по умолчанию и устаревший) и «ustar» (POSIX tar), с ограничениями на размер файла 2147483647 байтов (2 ГБ) и 8 589 934 591 байт (8 ГБ). ), соответственно.[3]
Форматы файлов cpio, ustar и pax определены POSIX.1-2001 для человек утилита, которая в настоящее время POSIX 1003.1-2008 совместимый, и поэтому он может читать и записывать архивы в формате cpio и ustar.
Реализации
Наиболее Дистрибутивы Linux предоставить версию GNU cpio
.[4] FreeBSD и macOS использовать лицензированный BSD bsdcpio
обеспечены libarchive.[5]
Смотрите также
Рекомендации
- ^ Пик, Дж; О'Рейли, Т; Лукидес, М. (1997). Unix Power Tools. O'Reilly & Associates, Inc. стр. 38.13. ISBN 1-565-92260-3.
- ^ Макилрой, М.Д. (1987). Читатель Research Unix: аннотированные выдержки из Руководства программиста, 1971–1986 (PDF) (Технический отчет). CSTR. Bell Labs. 139.
- ^ cpio Информация документ в Опции узел, страница руководства bsdcpio
- ^ «Cpio». GNU.org.
- ^ "libarchive".