Я не вижу причин использовать cpio по любой другой причине, кроме копирования открытых RPM-файлов, через disrpm или rpm2cpio , но могут быть угловые случаи, когда cpio предпочтительнее tar .
История и популярность
Оба tar и cpio являются конкурирующими форматами архивов, которые были введены в Версия 7 Unix в 1979 году и затем включены в POSIX . 1-1988, хотя в следующем стандарте осталась только смола, POSIX.1-2001 1 .
Формат файла Cpio менялся несколько раз и не оставался полностью совместимым между версиями. Например, теперь существует ASCII-кодированное представление данных двоичного файла.
Тар известен более широко, с годами стал более универсальным и с большей вероятностью будет поддерживаться в данной системе. Cpio все еще используется в некоторых областях, таких как формат пакета Red Hat (RPM), хотя RPM v5 (который, по общему признанию, неясен) использует вместо этого xar cpio.
Оба работают на большинстве Unix-подобных систем, хотя tar более распространен. Вот Статистика установки Debian :
#rank name inst vote old recent no-files (maintainer)
13 tar 189206 172133 3707 13298 68 (Bdale Garbee)
61 cpio 189028 71664 96346 20920 98 (Anibal Monsalve Salazar)
Режимы
Copy-out : Это для создания архива, сродни tar -pc
Копирование : Это для извлечения архива, сродни tar -px
Pass-through : Это в основном оба из вышеперечисленных, сродни tar -pc … |tar -px
, но в одной команде (и, следовательно, микроскопически быстрее). Это похоже на cp -pdr
, хотя и cpio, и (особенно) tar имеют больше возможностей для настройки. Также рассмотрим rsync -a
, о котором люди часто забывают, так как он чаще используется по сетевому соединению.
Я не сравнивал их производительность, но ожидаю, что они будут очень похожи по процессору, памяти и размеру архива (после сжатия).