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
Данный текст является ознакомительным фрагментом.