cpio 是一种在 Unix 和类 Unix 系统(如 Linux)上用于创建和提取归档文件的工具。与 tar 命令类似,cpio 可以用来打包和解包文件和目录,但它在某些方面提供了不同的功能和选项。cpio 命令通常与 find 命令结合使用,以创建基于文件类型、权限、时间戳等条件的归档文件
创建归档文件
- 使用
find和cpio创建归档文件:find /path/to/directory -print | cpio -o -H newc > archive.cpio
find:用于查找文件或目录-print:将找到的文件或目录打印到标准输出cpio -o -H newc:使用cpio创建归档文件。-o表示输出到标准输出,-H newc指定归档格式为新的 ASCII 格式(也称为 cpio ASCII 格式)>:将标准输出重定向到文件
提取归档文件
- 提取
cpio归档文件:cpio -idmv < archive.cpio
cpio -idmv:使用cpio解包归档文件-i:从归档文件中提取文件-d:创建目标目录-m:保留文件的修改时间-v:详细模式,显示正在进行的操作<:从文件读取标准输入
常用选项
-o:写入到标准输出-i:从标准输入读取-H:指定归档格式,如newc(新的 ASCII 格式)、bin(二进制格式)等-d:创建必要的目录结构-m:保留文件的修改时间-v:详细模式,显示操作过程
示例
- 提取归档文件到指定目录:
mkdir extract_dir cpio -idmv < archive.cpio > extract_dir/ - 仅提取归档中的特定文件:
find /path/to/archive -name 'pattern*' -print | cpio -o -H newc > extracted_files.cpio
如果只从归档中提取某些文件,可以使用 find 命令的 -name 参数来过滤文件,然后再通过管道传递给 cpio
cpio 命令是一个功能强大的工具,它提供了比 tar 更多的选项和灵活性。然而,由于 tar 命令在许多系统上更常用,并且与 gzip 和 bzip2 等压缩工具结合得更好,因此它通常更受欢迎