Команда cpio позволяет использовать утилиту для архивации данных с соответствующим именем. Эта утилита поддерживает как собственный бинарный формат архивов CPIO, так и популярный формат архивов TAR. Она достаточно редко используется, в отличие от утилиты tar, позволяющей работать лишь с архивами собственного формата. При этом следует отметить, что архивы формата CPIO в текущее время используются для хранения файлов в пакетах программного обеспечения формата RPM, а также файлов начальной файловой системы Linux (initrd). В случае пакета формата RPM архив формата CPIO с файлами программного компонента может быть извлечен с помощью специальной утилиты rpm2cpio.
Базовый синтаксис команды выглядит следующим образом:
$ cpio [параметры]
Для создания архива должен использоваться параметр -o, на вход утилиты должны подаваться имена добавляемых файлов, а стандартный поток вывода утилиты должен быть перенаправлен в файл архива. Вместо перенаправления стандартного потока вывода в файл архива может использоваться параметр -F с значением, являющимся именем файла архива. В качестве источника списка файлов для добавления в архив могут выступать такие стандартные утилиты, как ls и find (примеры будут приведены ниже).
Для извлечения файлов из архива предназначен параметр -i, причем на вход утилиты должны передаваться данные из файла архива. Извлеченные файлы будут сохраняться в текущей директории.
Если вас интересует, какой файл обрабатывается в данный момент, вы можете добавить к используемым параметрам параметр -v.
При возникновении необходимости работы с файлами формата TAR должен использоваться параметр -H с значением tar. Утилита cpio не поддерживает модификацию PAX формата TAR, поэтому не рекомендуется для работы с архивами формата TAR.
$ cpio -i < archive.cpio
$ ls | cpio -o > archive.cpio
$ ls | cpio -o -F archive.cpio
Для копирования всех скрытых файлов из текущей директории в директорию /tmp может использоваться следующая команда:
$ find .* | cpio -pmud /tmp
В данном случае команда find предназначена для формирования списка временных файлов, который отправляется на вход утилиты cpio. Если вы не хотите копировать какие-либо файлы, вы можете создать фильтр на основе утилиты grep. Параметр -p предназначен для копирования файлов, параметр -m — для сохранения меток времени их модификации, а параметр -d — для воссоздания дерева директорий при необходимости.