cpio
1.1、cpio简介
是什么 ?:a commandline tool which allows to copy files into or out of a cpio or tar archive.
开发语言:C
官方主页:https://www.gnu.org/software/cpio

cpio现在已经很少用到了,现在绝大多数情况下使用tar

1.2、通过包管理器安装cpio
操作系统包管理器安装命令
Windowsscoopscoop install busybox
WindowsChocolateychoco install -y busybox
macOSHomeBrewbrew install cpio
GNU/LinuxLinuxBrewbrew install gcpio
aptsudo apt-get install -y cpio
CentOSyumsudo yum install -y cpio
dnfsudo dnf install -y cpio
openSUSEzyppersudo zypper install -y cpio
Alpine Linuxapksudo apk add cpio

Arch Linux

ArcoLinux

Manjaro Linux

pacmansudo pacman -Syyu --noconfirm
sudo pacman -S    --noconfirm cpio
Gentoo LinuxPortagesudo emerge cpio
1.3、通过编译源码安装cpio 

step1、安装依赖

下载时cURL
解压时tarbzip2
编译时POSIX shGNU CoreUtilsGNU makeGCC ( gcc )   | LLVM / Clang
运行时glibc ( libc.sold-linux-x86-64.so )

step2、使用curl命令下载cpio源码包 (

curl -LO https://mirrors.tuna.tsinghua.edu.cn/gnu/cpio/cpio-2.13.tar.bz2

step3、使用tar解压cpio源码包

tar vxf cpio-2.13.tar.bz2

step4、进入cpio-2.13目录,并查看它的内容

step5、配置、编译、安装

./configure && make && sudo make install
1.4、cpio命令
1.4.1、--version

查看cpio的版本信息。

1.4.2、-t | --list

列出cpio文件中的内容。

示例:

cpio -t < xx.cpio
1.4.3、-i | --extract

解出cpio文件中的内容。

示例:

cpio -idmv < xx.cpio
1.4.4、-o | --create

将文件和目录打包起来。

示例:

cpio -o > xx.cpio
1.4.5、-D | --directory=<DIR>

指定输入文件或输出目录。此参数默认是当前目录。

示例:

cpio -tF xx.cpio
1.4.6、-F | --file=<FILE>

指定输入文件输出文件。此参数默认是标准输入设备标准输出设备

示例:

cpio -tF xx.cpio
1.4.7、-H | --format=<FORMAT>

cpio本身是其他格式的一层包装。

cpio支持的格式:

FORMAT说明
bin老式的binary格式
odc老式的POSIX.1跨平台格式
newc新型的SVR4跨平台格式, 支持大于65536i节点的文件系统,一般制作ramdisk就用这个格式
crc新型的SVR4跨平台格式, 并且计算校验和
tar老式的tar格式
ustarPOSIX.1 tar格式, 也能识别GNU tar归档文件
hpbinHP UNIX上的cpio使用的老式的binary格式。(用独特的方法储存设备文件)
hpodcHP UNIX上的cpio使用的跨平台格式。(用独特的方法储存设备文件)

示例:

cpio -ov --format=newc > xx.cpio
1.4.8、-L | --dereference

在复制文件的时候,如果是软连接,就使用软连接指向的真实文件替代软连接。

1.4.9、-d | --make-directories

自动创建需要的文件夹。

1.4.10、-m | --preserve-modification-time

保持住文件原来的修改时间。