cpio
Копирование файлов из
архива и в архив (UNIX)
Синтаксис:
Чтение/просмотр архива:
cpio
-i[Bcdfmrtuv] [шаблон...]
Запись в архив:
cpio-o [Bacv]
Копирование файлов:
cpio
-p[adlmruv] каталог
Поддерживаемые
платформы:
QNX Neutrino, Linux, Microsoft
Windows
Опции:
-a
Сбросить время доступа к входным файлам после
копирования. Если кроме того указана опция -l, то время доступа к
связанным файлам не сбрасывается. Эта опция используется
только совместно с опцией -o или - i.
-B
Разместить входные/выходные данные в блоки по 5120
байт в записи. Эта опция используется только совместно с
опцией - o или -i для данных, передаваемых в
байт-ориентированные специальные файлы или извлекаемых из них.
-c
Записать
информацию заголовка в ASCII (значение по умолчанию; опция,
обеспечивающая совместимость).
-d
Создавать
каталоги при необходимости. Эта опция используется только
совместно с опцией -i или -p.
-f
Копировать все
файлы из архива, за исключением содержащихся в шаблонах. Эта
опция используется только совместно с опцией -i.
-i
Копировать из архива.
(Извлечь файлы из архива, считываемого из стандартного потока
ввода.)
-l
("эль") По
возможности создавать ссылки на файлы вместо копирования. Эта
опция используется только совместно с опцией -p.
-m
Сохранить время предыдущих модификаций. Эта опция не
используется для каталогов, находящихся в процессе
копирования. Эта опция используется только совместно с опцией
-i или -p.
-o
Копировать в архив. (Записать
архив на стандартное устройство вывода.)
-p
Передать. Условно скопировать файлы из списка,
считываемого из стандартного потока ввода, в целевой каталог,
определенный в качестве аргумента cpio.
-r
Переименовать файлы в интерактивном режиме.
Пользователь должен определить новое имя для каждого файла.
Для выбора этой опции необходимы полномочия на чтение и запись
через управляющий терминал (/dev/tty). При вводе
пустой строки файл пропускается. Эта опция используется только
совместно с опцией -i или -o.
-t
Вывести
содержание ввода. Файлы при этом не создаются. Эта опция
используется только совместно с опцией - i.
-u
Копировать файлы безусловно. Как правило, новый файл
не может быть заменен более старым файлом с таким же именем.
Эта опция используется только совместно с опцией -i или -p.
-v
Вывести расширенную информацию. Вывести имена
связанных файлов. Эта опция используется только совместно с
опцией - i. При
использовании совместно с опцией -t выводится подробный список.
шаблон
Простое регулярное выражение,
содержащееся в представлении генерации имен командного
интерпретатора.
каталог
Целевой каталог.
Описание:
Утилита cpio создает и считывает файлы в формате,
определенном форматом файла архива/обмена (Archive/Interchange
File Format) POSIX cpio. Она может
выполняться в трех режимах.
Режим -i (копирование из архива)
позволяет извлекать файлы из стандартного потока ввода,
который является результатом предыдущего выполнения cpio -o. Выбираются только файлы с
именами, соответствующими заданным шаблонам. Можно указать
несколько шаблонов. Если шаблоны не указаны, то по умолчанию
выбираются все файлы. Извлеченные файлы создаются условно и
копируются в рабочий каталог и, возможно, на нижестоящие
уровни, в зависимости от используемых опций. При этом для
файлов используются полномочия, сохраненные в результате
предыдущего вызова утилиты cpio -o. Используются
владелец и группа файлов текущего пользователя, если этот
пользователь не обладает соответствующими полномочиями,
позволяющими сохранить для утилиты cpio владельца и группу файлов, сохраненных
для предыдущего вызова cpio -o.
Режим -o используется для записи
архива на стандартное устройство вывода.
Режим -p (передача) позволяет
считывать стандартный поток ввода для получения списка путей к
файлам, условно создаваемых и копируемых в целевой каталог в
соответствии с выбранными опциями.
При
обнаружении ошибки определяется ее причина, и копирование
файлов с помощью утилиты cpio продолжается.
Нераспознаваемые файлы в архиве пропускаются.
Для утилиты
cpio применяются
следующие ограничения:
-
пути ограничены 256 символами;
-
для копирования специальных файлов
необходимы соответствующие полномочия;
-
блоки состоят из 512 байт;
-
при извлечении файлов из
архива косая черта в начале имени (/) удаляется.
Примеры:
Копирование в
архив файлов, список которых создан утилитой ls, и их
перенаправление в файл archive:
ls | cpio -o >archive
Использование выходного файла archive утилиты cpio -o, извлечение файлов,
соответствующих шаблонам memo/al и memo/b*, создание каталогов в текущем
каталоге и размещение в них файлов:
cpio -id "memo/al"
"memo/b*"
Использование имен файлов, направляемых в cpio, из утилиты find и их
копирование или создание ссылки в другой каталог с именем newdir с сохранением времени изменения:
find . -depth -print | cpio -pdlmv newdir
Статус завершения:
0
Выполнено копирование всех
входных файлов.
2
В
процессе выполнения утилиты обнаружены ошибки при копировании
файлов или каталогов или осуществлении доступа к ним. При
наличии несуществующих файлов или каталогов или отсутствии
полномочий, необходимых для доступа к исходным или целевым
файлам, создаются соответствующие сообщения об ошибках.
Предупреждения:
Когда
утилита cpio восстанавливает
каталог, полномочия созданного каталога приводятся в
соответствие с полномочиями для исходного каталога. Если
полномочия на запись отсутствуют для этого каталога,
копирование каких-либо других файлов из этого каталога
завершается неуспешно. Для решения этой проблемы необходимо
сначала сохранить файлы из каталога, а затем сам каталог. Если
для генерации путей для утилиты cpio используется утилита find, то для утилиты find необходимо указать опцию -depth.
Также
обратите внимание на то, что для запроса информации при
указании опций -i или - r используется управляющий
терминал (/dev/tty).