Копирование файлов из архива и в архив (UNIX)
cpio -i[Bcdfmrtuv] [шаблон...]
cpio-o [Bacv]
cpio -p[adlmruv] каталог
- -a
- Сбросить время доступа к входным файлам после копирования. Если кроме того указана опция -l, то время доступа к связанным файлам не сбрасывается. Эта опция используется только совместно с опцией -o или -i.
- -A
- Добавить файлы в архив. Допустима только для архивов в файлах, на дискетах или на разделах жесткого диска. Эта опция используется только совместно с опцией -o.
- -B
- Разместить входные/выходные данные в блоки по 5120 байт в записи. Эта опция используется только совместно с опцией -o или -i для данных, передаваемых в байт-ориентированные специальные файлы или извлекаемых из них.
- -b
- Изменить порядок байт в каждом слове. Эта опция используется только совместно с опцией -i.
- -c
- Записать информацию заголовка в ASCII (значение по умолчанию; опция, обеспечивающая совместимость).
- -С размер_буфера
- Объединяет ввод/вывод в записи указанного размера (размер задается положительным целым числом). Стандартный размер буфера, если не указана эта опция и опция -B, - 8192 байта. Опция -C имеет смысл только если происходит обмен данными со специальным символьным устройством, например,
/dev/rmt/0m
.
- --H формат
- Прочитать архив указанного формата. Допустимы следующие форматы:
- bcpio
- Старый бинарный cpio формат
- cpio
- Старый восьмиричный cpio формат
- sv4cpio
- SVR4 шестнадцатиричный формат
- tar
- Старый tar формат
- ustar
- POSIX ustar формат
- -d
- Создавать каталоги при необходимости. Эта опция используется только совместно с опцией -i или -p.
- -E файл
- Задать входной файл, содержащий список имен файлов, которые необходимо извлечь из архива.
- -I файл
- Прочитать содержимое файла как входной архив. Если указан файл специального символьного устройства и текущий носитель полностью прочитан, замените носитель и нажмите клавишу
Enter
для чтения следующего носителя. Эта опция используется только совместно с опцией -i
- -f
- Копировать все файлы из архива, за исключением содержащихся в шаблонах. Эта опция используется только совместно с опцией -i.
- -l
- ("эль") По возможности создавать ссылки на файлы вместо копирования. Эта опция используется только совместно с опцией -p.
- -L
- Переходить по символьным ссылкам.
- -m
- Сохранить время предыдущих модификаций. Эта опция не используется для каталогов, находящихся в процессе копирования. Эта опция используется только совместно с опцией -i или -p.
- -o
- Копировать в архив. (Записать архив на стандартное устройство вывода.)
- -O
- Направлять результат работы cpio в файл. Эта опция используется только совместно с опцией -o.
- -p
- Передать. Условно скопировать файлы из списка, считываемого из стандартного потока ввода, в целевой каталог, определенный в качестве аргумента cpio.
- -r
- Интерактивно переименовать файлы. Если пользователь просто нажимает
Enter
, файл пропускается. Если пользователь вводит точку (.
), оставляется исходное имя файла.
- -s
- Переставлять байты в каждом полуслове.
- -S
- Переставлять полуслова в каждом слове.
- -t
- Вывести содержание ввода. Файлы при этом не создаются. Эта опция используется только совместно с опцией -i.
- -u
- Копировать файлы безусловно. Как правило, новый файл не может быть заменен более старым файлом с таким же именем. Эта опция используется только совместно с опцией -i или -p.
- -v
- Вывести расширенную информацию. Вывести имена связанных файлов. Эта опция используется только совместно с опцией -i. При использовании совместно с опцией -t выводится подробный список.
- --xz
- Сжать/разжать архив, используя формат xz
- --Z
- Сжать архив, используя формат compress
- --z
- Сжать/разжать архив, используя формат gzip
- -6
- Обрабатывать формат файла архива UNIX System Sixth Edition. Эта опция используется только совместно с опцией -i.
- --force-local
- Не интерпретировать имена файлов, содержащие ":", как удаленные файлы.
- --insecure
- Интерпретировать имена файлов, содержащие "..", как часть пути.
ЗОСРВ «Нейтрино»
aarch64, arm, armv7, e2k, mips, ppc, x86
Утилита 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).
Базовые подсистемы ЗОСРВ «Нейтрино», UNIX
cp, pax, find
Предыдущий раздел: Утилиты