cpio

cpio 不是经常用到,但是每次要用都要 google,在此记录。

# find /etc -type f -print | cpio -ov > ~/test.cpio
-o 打包
-v 显示详细信息

# cpio -idv < test.cpio
-i 解压缩
-d 在 cpio 解压缩的过程中,建立相应的目录

注意:使用 find 匹配合适的文件时,需要区分使用的是绝对路径还是相对路径,下面这两种方式压缩再解压缩后的文件是不一样的,但是文件的数量还是不变的。

使用相对路径:

# pwd
/root
# cd /etc/
# find . -type f -print | cpio -ov > tmp

使用绝对路径:
# find /etc -type f -print | cpio -o
v > tmp

最典型的应用就是 initrd。

# cp /boot/initrd-2.6.18-194.el5.img /tmp
# file initrd-2.6.18-194.el5.img
initrd-2.6.18-194.el5.img: gzip compressed data, from Unix, last modified: Mon Nov 29 16:37:39 2010, max compression
# mv initrd-2.6.18-194.el5.img initrd-2.6.18-194.el5.gz
# gunzip initrd-2.6.18-194.el5.gz
# file initrd-2.6.18-194.el5
initrd-2.6.18-194.el5: ASCII cpio archive (SVR4 with no CRC)
# cpio -idv < initrd-2.6.18-194.el5