cpio是一种归档格式,可以将多个文件和目录打包成一个单独的文件,同时保留文件的权限、所有权和时间戳等信息。cpio 命令可以用来创建、提取和管理这种归档文件。打包时,通过管道将文件列表传递给cpio -ov,输出到归档文件,cpio不递归目录,需依赖find;解包会覆盖同名文件,操作前建议先用-t预览内容。
Linux常用命令cpio怎么用?
cpio 是 Linux 中用于归档和备份文件的命令,支持将文件打包或解包。以下是其核心用法和示例:
一、基本语法
bash# 打包文件(需配合find或ls生成文件列表)find <目录> | cpio -ov > <归档文件.cpio># 解包文件cpio -idv < <归档文件.cpio>
二、常用选项
选项作用
-o创建归档(输出模式)
-i解包归档(输入模式)
-v显示操作详情
-d解包时自动创建目录
-t列出归档内容
-F指定归档文件名
三、典型用法示例
1. 打包文件
bash# 将当前目录下所有文件打包到 backup.cpiofind . | cpio -ov > backup.cpio# 仅打包特定文件类型(如.txt)find . -name "*.txt" | cpio -ov > texts.cpio
2. 解包文件
bash# 解包到当前目录cpio -idv < backup.cpio# 指定解包目录mkdir restore && cd restorecpio -idv < ../backup.cpio
3. 列出归档内容
bashcpio -itv < backup.cpio
4. 使用 -F 替代重定向
bash# 打包cpio -ov -F backup.cpio < file_list.txt# 解包cpio -idv -F backup.cpio
四、与 find 结合的高级用法
bash# 排除特定目录(如./tmp)find . -path './tmp' -prune -o -print | cpio -ov > filtered.cpio# 按时间范围打包(7天内修改的文件)find . -mtime -7 | cpio -ov > recent.cpio
五、注意事项
依赖文件列表:cpio 本身不递归目录,需通过 find 或 ls 生成文件列表。
解包覆盖风险:解包时会直接覆盖同名文件,建议先测试。
压缩支持:可通过管道结合 gzip 实现压缩:
bash# 打包并压缩find . | cpio -ov | gzip > backup.cpio.gz# 解压并解包gunzip -c backup.cpio.gz | cpio -idv
cpio 是 Linux 中用于打包/解包文件的命令,需配合文件列表使用。通过灵活组合 cpio 与 find,可以高效完成定制化备份任务,尤其适合脚本自动化场景,跟着小编一起学习下吧。