在 RockyLinux 系统中,除了常见的
tar命令外,还有一个强大但常被忽视的归档工具:
cpio。本文将手把手教你如何使用 cpio命令 进行文件打包与解包,即使你是 Linux 新手,也能轻松上手!

什么是 cpio?
cpio(Copy I/O)是一个用于创建、提取和列出归档文件的命令行工具。它不像
tar那样直接指定文件路径,而是通过标准输入(stdin)读取文件列表,再进行归档操作。这种设计使其特别适合与
find、
ls等命令配合使用。
在 RockyLinux系统管理 中,
cpio常用于备份、系统镜像制作或内核 initramfs 的构建。
cpio 的三种工作模式
-o(--create):创建归档文件(输出模式) -i(--extract):从归档文件中提取内容(输入模式) -p(--pass-through):直接复制文件到目标目录(传递模式)实战:使用 cpio 打包文件
假设我们要将
/home/user/docs目录下的所有
.txt文件打包成一个名为
docs.cpio的归档文件。
首先,使用
find列出要打包的文件,然后通过管道传给
cpio:
find /home/user/docs -name "*.txt" | cpio -o > docs.cpio
这条命令会生成一个名为
docs.cpio的二进制归档文件。
解包 cpio 归档文件
要将刚才创建的
docs.cpio解压到当前目录,可以使用以下命令:
cpio -i < docs.cpio
如果你想查看归档中包含哪些文件而不解压,可以加上
-t参数:
cpio -it < docs.cpio
使用 cpio 复制整个目录(-p 模式)
你也可以用
cpio直接复制目录结构。例如,将
/etc/nginx完整复制到
/backup/nginx:
mkdir -p /backup/nginxcd /etcfind nginx | cpio -pdm /backup
参数说明:
-p:传递模式
-d:自动创建所需目录
-m:保留文件修改时间
常见问题与技巧
1. cpio 支持压缩吗?
原生
cpio不支持压缩,但你可以结合
gzip或
bzip2使用:
# 打包并压缩find . -name "*.log" | cpio -o | gzip > logs.cpio.gz# 解压并解包gzip -dc logs.cpio.gz | cpio -i
2. 如何确保权限和符号链接被正确保存?
使用
-R(保留权限)和默认行为(cpio 自动处理符号链接)即可。通常无需额外参数。
总结
虽然
tar更为流行,但在某些场景下,cpio归档工具 提供了更灵活的控制能力,尤其适合脚本化操作和系统级任务。掌握 RockyLinux cpio命令,能让你在 Linux文件打包 和系统维护中更加得心应手。
现在就打开你的 RockyLinux 终端,试试这些命令吧!如有疑问,欢迎在评论区交流。
