登录
首页 >  文章 >  linux

Linuxcpio命令备份与还原全解析

时间:2025-07-24 21:30:59 130浏览 收藏

本篇文章向大家介绍《Linux cpio命令备份还原文件详解》,主要包括,具有一定的参考价值,需要的朋友可以参考一下。

linux备份和还原文件是什么-cpio命令使用与实例

Linux cpio命令

Linux 中的 cpio 命令主要用于执行文件的备份操作。

cpio 是一个用于创建、提取备份文件的工具,它能够将文件添加进备份包或从 cpio 或 tar 格式的备份中解压出来。

语法

cpio [-0aABckLovV][-C ][-F ][-H ][-O ][--block-size=][--force-local][--help][--quiet][--version] 或  
cpio [-bBcdfikmnrsStuvV][-C ][-E ][-F ][-H ][-I ][-M ][-R <:>][--block-size=][--force-local][--help][--no-absolute-filenames][--no-preserve-owner][--only-verify-crc][--quiet][--sparse][--version][范本样式...] 或  
cpio [-0adkiLmpuvV][-R <:>][--help][--no-preserve-owner][--quiet][--sparse][--version][目的目錄]

参数说明

  • -0或--null 支持以空字符作为输入分隔符,通常与 find 的 "-print0" 配合使用。
  • -a或--reset-access-time 重置文件的访问时间。
  • -A或--append 将内容追加到已有备份文件末尾(仅限磁盘文件)。
  • -b或--swap 字节交换,等效于"-sS"组合。
  • -B 设置输入输出块大小为 5120 字节。
  • -c 使用传统的 ASCII 格式进行备份。
  • -C或--io-size= 自定义输入输出块大小(单位:字节)。
  • -d或--make-directories 如路径不存在则自动创建。
  • -E或--pattern-file= 指定包含匹配模式的文件,每行一个模式。
  • -f或--nonmatching 解压时不包括符合匹配条件的文件。
  • -F或--file= 指定备份文件名替代标准输入输出,可用于网络传输。
  • -H 指定备份格式。
  • -i或--extract 进入还原模式,解压备份文件。
  • -l 显示文件列表但不实际提取。
  • -k 忽略该参数,仅为兼容旧版本设计。
  • -l或--link 创建硬链接而不是复制文件(copy-pass 模式下使用)。
  • -L或--dereference 复制符号链接指向的实际文件而非链接本身。
  • -m或--preserve-modification-time 不修改文件最后修改时间。
  • -M或--message= 设置更换介质时显示的信息。
  • -n或--numeric-uid-gid 在列出备份内容时显示 UID 和 GID 而非用户名和组名。
  • -o或--create 创建新的备份文件。
  • -O 指定输出文件名替代标准输出。
  • -p或--pass-through 直接复制文件而不生成中间备份文件。
  • -r或--rename 允许交互式重命名文件。
  • -R<:>或--owner<:> 指定恢复或复制时文件的所有者及所属组。
  • -s或--swap-bytes 对调每两个字节的内容。
  • -S或--swap-halfwords 对调每个半字节的数据。
  • -t或--list 列出备份内容。
  • -u或--unconditional 无条件覆盖所有已存在文件。
  • -v或--verbose 输出详细操作信息。
  • -V或--dot 每处理一个文件前打印一个点号。
  • --block-size= 设定块大小,如设为 5 则实际大小为 5 * 512 = 2560 字节。
  • --force-local 强制将文件保存在本地主机上。
  • --help 显示帮助文档。
  • --no-absolute-filenames 使用相对路径而非绝对路径。
  • --no-preserve-owner 不保留原文件的拥有者权限。
  • --only-verify-crc 仅验证采用 CRC 校验的备份文件完整性。
  • --quiet 禁止显示处理进度。
  • --sparse 若文件中包含大量连续零字节,则将其存储为稀疏文件。
  • --version 显示程序版本信息。

实例

创建备份

[root@runoob.com var]# ll
总用量 164
drwxr-xr-x  2 root  root  4096 2008-03-30 account
drwxr-xr-x  9 root  root  4096 2008-03-30 cache
...
[root@runoob.com var]# ls | cpio -o >123.cpio
25 blocks
[root@runoob.com var]# ll
总用量 172
-rw-r--r--  1 root  root  1024 5月 24 13:06 123.cpio
...

解压备份

[root@runoob.com var]# ls | cpio -i -l 123.cpio

查看备份内容

[root@runoob.com var]# cpio -t -I 123.cpio  
123.cpio
a.c
b.c
c.c
...

强制解压

[root@runoob.com var]# cpio -i -u -I 123.cpio 

排除特定文件

[root@runoob.com var]# cpio -i -I 123.cpio -f *.c 

向备份追加内容

[root@runoob.com var]# cpio -o -O 123.cpio -A
db
1 block

标准输入创建备份

[root@runoob.com test]# cpio -o >123.cpio
a.c
b.c
c.c
3 block

复制文件

[root@runoob.com test]# cpio -p /root
a.c
b.c
c.c
3 block

以上就是本文的全部内容了,是否有顺利帮助你解决问题?若是能给你带来学习上的帮助,请大家多多支持golang学习网!更多关于文章的相关知识,也可关注golang学习网公众号。

相关阅读
更多>
最新阅读
更多>
课程推荐
更多>