10.4.4. Архиватор cpio

10.4.4. Архиватор cpio

GNU-версия этого классического архиватора (Copy In/Out), используемая в Linux, поддерживает архивы как в собственном формате, так и в формате tar. Программа cpio может работать в одном из трех режимов в зависимости от первого ключа:

? cpio -о [ключи] < список_файлов > архив: режим copy-out, копирование файлов в архив. Список файлов, по одному в строке, подается на стандартный ввод программы; в архив перенаправляется поток стандартного вывода. В качестве архива можно указывать файл на диске, файл устройства магнитной ленты или канал: например, можно пропустить вывод через какую-нибудь программу сжатия. Список файлов можно подготовить вручную, а можно использовать поток вывода другой программы, например, ls -1 (с ключом «дефис-единица», выводящим файлы по одному в строке) или find.

? cpio -i [ключи] [шаблоны] < архив: режим copy-in, извлечение файлов из архива или вывод содержания архива. Архив читается из стандартного потока ввода. Извлечению подлежат только те файлы, имена которых удовлетворяют одному из шаблонов, перечисленных через пробел; если шаблоны не указаны, то извлекаются все файлы. Внимание: символы подстановки не совпадают с теми, которые использует оболочка. Символу «.» удовлетворяет любая подстрока в начале образца, а символу «/» в имени файла — любой набор символов.

? cpio -р [ключи] каталог_назначения < список_файлов: режим copy-pass, копирование дерева каталогов.

О ключах команды cpio можно узнать из ее man-страницы. Приведу несколько примеров ее использования.

Архивирование в формате tar под именем archive.tar файлов, имена которых вы вводите в командной строке:

$ cpio -о -H tar -O archive.tar

/opt/ctrl/ctrl.с

/opt/ctrl/ctrl.h

/opt/ctrl/ctrl.html

^D

$

Архивный файл будет создан с сохранением структуры каталогов. Чтобы убедиться в этом, запустите файловый менеджер mc и просмотрите содержимое архива archive.tar.

Архивирование текущего каталога с использованием перенаправления вывода команды ls:

$ ls -1 | cpio -о -H tar -О current_dir.tar

Извлечение файлов из архива:

$ cpio -i < current_dir.tar

В режиме copy-in ключ формата «-H tar» указывать необязательно, потому что программа cpio автоматически определяет формат входного архива.

Просмотр содержимого архива на магнитной ленте:

$ cpio -i -t < /dev/nftape

Данный текст является ознакомительным фрагментом.