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 применяются следующие ограничения:

Примеры:

Копирование в архив файлов, список которых создан утилитой 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).