Главная > Архивация и сжатие > cpio

cpio: Создание и извлечение файловых архивов

cpio — это утилита, используемая для копирования файлов в архив или извлечения файлов из архива. Обычно она обрабатывает список файлов, получаемый через конвейер (pipe), и используется для резервного копирования и восстановления, копирования структуры каталогов и т. д. С помощью трех основных режимов (копирование-из, копирование-в, копирование-путь) можно выполнять различные задачи архивирования.

Обзор

cpio работает как потоковый архиватор, читая список файлов из стандартного ввода или записывая архив в стандартный вывод. Это обеспечивает высокую гибкость при использовании с другими командами (например, find) через конвейер.

Основные характеристики

  • Три основных режима работы: копирование-из (-o), копирование-в (-i), копирование-путь (-p)
  • Гибкая обработка списка файлов через конвейер
  • Поддержка различных форматов архивов
  • Используется для резервного копирования, восстановления, копирования структуры каталогов

Основные опции

cpio требует обязательного указания опции режима работы, а также предоставляет различные вспомогательные опции.

Режимы работы

Общие опции

Сгенерированная команда:

Комбинируйте команды.

Описание:

`cpio` Запускает команду.

Комбинируйте эти опции, чтобы виртуально выполнять команды с помощью ИИ.

Примеры использования

Различные примеры использования cpio с тремя основными режимами.

Архивирование всех файлов в текущем каталоге

find . -print0 | cpio -ov0 > archive.cpio

Создает список всех файлов в текущем каталоге с помощью команды find и архивирует его в файл archive.cpio с помощью команды cpio -ov. Опция -0 безопасно обрабатывает имена файлов, содержащие пробелы.

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

cpio -ivd < archive.cpio

Извлекает все файлы из созданного архива archive.cpio в текущий каталог. Опция -d автоматически создает необходимые каталоги.

Копирование структуры каталогов в другое место

find . -depth -print0 | cpio -pd0v /new/directory

Копирует все файлы и структуру каталогов из текущего каталога в каталог /new/directory. Режим -p копирует напрямую без создания архива, -d означает создание каталогов, -v — подробный вывод.

Извлечение только файлов с определенным шаблоном из архива

cpio -ivd 'report*' < archive.cpio

Извлекает из архива archive.cpio только файлы, начинающиеся с 'report'. Можно использовать подстановочные знаки.

Советы и примечания

cpio — мощный инструмент, но важно знать правильные способы его использования.

Полезные советы по использованию cpio

  • Использование с командой `find`: Поскольку `cpio` получает список файлов из стандартного ввода, обычно используется команда `find` для создания списка файлов по сложным условиям, а затем передается в `cpio` через конвейер.
  • Использование опции `-0`: При работе с именами файлов, которые могут содержать пробелы или специальные символы, важно использовать `find -print0` вместе с `cpio -0`, чтобы имена файлов обрабатывались корректно.
  • Важность выбора режима: Три режима `-o`, `-i`, `-p` имеют разные цели, поэтому необходимо выбирать правильный режим для выполняемой задачи.
  • Абсолютные и относительные пути: `cpio` использует пути, сохраненные в архиве, как есть. Поэтому при создании архива с использованием относительных путей, таких как `find .`, файлы будут извлекаться относительно текущего каталога. При архивировании с абсолютными путями, они будут использоваться и при извлечении.

Те же команды в категории