Обзор
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 .`, файлы будут извлекаться относительно текущего каталога. При архивировании с абсолютными путями, они будут использоваться и при извлечении.