CentOS中的cpio命令详解(小白也能轻松掌握的Linux归档工具)

来源:这里教程网 时间:2026-03-01 10:55:19 作者:

在Linux系统中,尤其是CentOS这类企业级操作系统中,cpio 是一个非常实用但常被忽视的归档工具。与大家更熟悉的

tar
不同,
cpio
采用“从标准输入读取文件列表”的方式来创建或提取归档,这使得它在脚本自动化和管道操作中具有独特优势。

一、什么是cpio?

cpio(copy in and out)是一个用于创建、提取和列出归档文件内容的命令行工具。它支持多种格式(如 binary、ASCII、CRC、newc 等),并且可以配合

find
ls
等命令灵活使用。

二、cpio的基本语法

cpio 命令有三种主要操作模式:

-o(--create):创建归档(copy-out 模式) -i(--extract):提取归档(copy-in 模式) -p(--pass-through):直接复制文件到目标目录(不创建归档)

三、实战:如何使用cpio进行文件归档

假设我们要将

/etc
目录下的所有配置文件打包成一个名为
etc_backup.cpio
的归档文件。

步骤1:生成文件列表并创建归档

我们可以使用

find
命令列出所有文件,并通过管道传递给
cpio

$ find /etc -print | cpio -ov > etc_backup.cpio

解释:

find /etc -print
:递归列出
/etc
下的所有文件路径
cpio -ov
-o
表示创建归档,
-v
表示显示详细过程
> etc_backup.cpio
:将输出重定向到归档文件

步骤2:查看归档内容

$ cpio -it < etc_backup.cpio

-i
表示读取归档,
-t
表示列出内容,
<
表示从文件读入。

步骤3:解压归档到指定目录

$ mkdir /tmp/restore$ cd /tmp/restore$ cpio -idmv < /path/to/etc_backup.cpio

参数说明:

-i
:提取模式
-d
:自动创建所需目录
-m
:保留文件修改时间
-v
:显示处理过程

四、cpio vs tar:有什么区别?

很多用户会问:既然有

tar
,为什么还要用
cpio
?其实两者各有优势:

特性 cpio tar 输入方式 从标准输入读取文件列表 直接指定文件或目录 脚本友好性 极高(适合管道) 一般 常用场景 系统初始化镜像(如 initramfs)、批量备份 日常打包、压缩传输

五、常见问题与技巧

Q:cpio 能压缩吗?

cpio 本身不提供压缩功能,但可以配合 gzip、bzip2 等工具使用:

$ find . -print | cpio -o | gzip > backup.cpio.gz$ gunzip -c backup.cpio.gz | cpio -i

Q:如何排除某些文件?

可以在

find
中使用
-not -name
-prune
来过滤:

$ find /etc -not -name "*.bak" -print | cpio -ov > clean_etc.cpio

六、总结

虽然

tar
更为流行,但 CentOS cpio命令 在特定场景下(如系统恢复、initramfs构建)依然不可替代。掌握
cpio
不仅能提升你的 Linux文件打包 技能,还能让你在处理复杂备份任务时更加得心应手。无论是日常运维还是系统级开发,cpio归档工具 都是你工具箱中值得收藏的一员。同时,它也是构建可靠 系统备份工具 链的重要组成部分。

希望这篇教程能帮助你轻松上手 cpio!如有疑问,欢迎在评论区交流。

相关推荐