linux cpio命令的使用

cpio -o  > [file|device] <==备份

cpio -i  < [file|device] <==还原

-o :将数据 copy 输出到档案或装置上

-i :将数据自档案或装置 copy 出来系统当中

-t :查看 cpio 建立的档案或装置的内容

-c :一种较新的 portable format 方式储存

-v :让储存的过程中文件名称可以在屏幕上显示

-B :让预设的 Blocks 可以增加至 5120 bytes ,预设是 512 bytes !

这样的好处是可以让大档案的储存速度加快(请参考 i-nodes 的观念)

-d :自动建立目录!由于 cpio 的内容可能不是在同一个目录内,

如此的话在反备份的过程会有问题! 这个时候加上 -d 的话,

就可以自动的将需要的目录建立起来了!

-u :自动的将较新的档案覆盖较旧的档案!

准备数据

[root@node1 tmp]# ll

total 104

-rw-r--r-- 1 root root     8 Jan 13 12:35 test

-rw-r--r-- 1 root root  3071 Jan 13 12:13 top.bak

-rw-r--r-- 1 root root 21473 Jan 13 12:22 top.bak1

-rw-r--r-- 1 root root 21473 Jan 13 12:22 top.bak2

-rw-r--r-- 1 root root 21473 Jan 13 12:02 top.bak3

-rw-r--r-- 1 root root 21473 Jan 13 12:34 top.txt

[root@node1 tmp]# mkdir abc

[root@node1 tmp]# ll

total 108

drwxr-xr-x 2 root root  4096 Jan 13 12:35 abc

-rw-r--r-- 1 root root     8 Jan 13 12:35 test

-rw-r--r-- 1 root root  3071 Jan 13 12:13 top.bak

-rw-r--r-- 1 root root 21473 Jan 13 12:22 top.bak1

-rw-r--r-- 1 root root 21473 Jan 13 12:22 top.bak2

-rw-r--r-- 1 root root 21473 Jan 13 12:02 top.bak3

-rw-r--r-- 1 root root 21473 Jan 13 12:34 top.txt

[root@node1 tmp]# cd abc

[root@node1 abc]# echo "hello cpio" > abc1.txt

[root@node1 abc]# ll

total 4

-rw-r--r-- 1 root root 11 Jan 13 12:35 abc1.txt

[root@node1 tmp]# pwd

/tmp

[root@node1 tmp]# ll

total 108

drwxr-xr-x 2 root root  4096 Jan 13 12:35 abc

-rw-r--r-- 1 root root     8 Jan 13 12:35 test

-rw-r--r-- 1 root root  3071 Jan 13 12:13 top.bak

-rw-r--r-- 1 root root 21473 Jan 13 12:22 top.bak1

-rw-r--r-- 1 root root 21473 Jan 13 12:22 top.bak2

-rw-r--r-- 1 root root 21473 Jan 13 12:02 top.bak3

-rw-r--r-- 1 root root 21473 Jan 13 12:34 top.txt

1、使用cpio备份

[root@node1 tmp]# cpio -ov top.bak > top.bak.cpio  --cpio不支持直接写入文件名,需要使用ls或echo或find或

cpio: Too many arguments

1)使用ls

[root@node1 tmp]# ls top.bak1 top.bak2

top.bak1  top.bak2

[root@node1 tmp]# ls top.bak1 top.bak2 | cpio -ov > top.bak12.cpio

top.bak1

top.bak2

85 blocks

[root@node1 tmp]# cpio -tv < top.bak12.cpio  --查看 cpio 建立的档案或装置的内容

-rw-r--r--   1 root     root        21473 Jan 13 12:22 top.bak1

-rw-r--r--   1 root     root        21473 Jan 13 12:22 top.bak2

85 blocks

2)使用echo

[root@node1 tmp]# echo top.bak | cpio -ov > top.bak.rel.cpio  --相对路径的备份

top.bak

7 blocks

[root@node1 tmp]# echo /tmp/top.bak | cpio -ov > top.bak.abs.cpio --绝对路径的备份

/tmp/top.bak

7 blocks

[root@node1 tmp]# cpio -tv < top.bak.rel.cpio

-rw-r--r--   1 root     root         3071 Jan 13 12:13 top.bak

7 blocks

[root@node1 tmp]# cpio -tv < top.bak.abs.cpio

cpio: Removing leading `/' from member names

-rw-r--r--   1 root     root         3071 Jan 13 12:13 tmp/top.bak

7 blocks

3)使用find

[root@node1 tmp]# find /tmp -name abc1.txt

/tmp/abc/abc1.txt

[root@node1 tmp]# find /tmp -name abc1.txt -print

/tmp/abc/abc1.txt

[root@node1 tmp]# find /tmp -name abc1.txt | cpio -ov > abc1.txt.cpio

/tmp/abc/abc1.txt

1 block

4)使用

[root@node1 tmp]# cat test

top.txt

[root@node1 tmp]# cpio -ov < test > top.txt.cpio

top.txt

43 blocks

[root@node1 tmp]# cpio -tv <  top.txt.cpio

-rw-r--r--   1 root     root        21473 Jan 13 12:34 top.txt

43 blocks

2、使用cpio恢复

[root@node1 dev]# cd /tmp

[root@node1 tmp]# ll

total 164

drwxr-xr-x 2 root root  4096 Jan 13 12:35 abc

-rw-r--r-- 1 root root   512 Jan 13 12:37 abc1.txt.cpio

-rw-r--r-- 1 root root     8 Jan 13 12:35 test

-rw-r--r-- 1 root root  3071 Jan 13 12:13 top.bak

-rw-r--r-- 1 root root  3584 Jan 13 12:36 top.bak.abs.cpio

-rw-r--r-- 1 root root     0 Jan 13 12:36 top.bak.cpio

-rw-r--r-- 1 root root  3584 Jan 13 12:36 top.bak.rel.cpio

-rw-r--r-- 1 root root 21473 Jan 13 12:22 top.bak1

-rw-r--r-- 1 root root 43520 Jan 13 12:36 top.bak12.cpio

-rw-r--r-- 1 root root 21473 Jan 13 12:22 top.bak2

-rw-r--r-- 1 root root 21473 Jan 13 12:02 top.bak3

-rw-r--r-- 1 root root 21473 Jan 13 12:34 top.txt

[root@node1 /]# pwd

/

[root@node1 /]# mkdir tmp2

[root@node1 /]# cd /tmp2

[root@node1 tmp2]# cpio -iv < /tmp/top.bak.rel.cpio

top.bak

7 blocks

[root@node1 tmp2]# ll

total 4

-rw-r--r-- 1 root root 3071 Jan 13 12:38 top.bak

[root@node1 tmp2]# cpio -iv < /tmp/top.bak.abs.cpio

cpio: Removing leading `/' from member names ---------------------注意这里,不使用绝对路径

cpio: tmp/top.bak: No such file or directory

tmp/top.bak

7 blocks

[root@node1 tmp2]# ll

total 4

-rw-r--r-- 1 root root 3071 Jan 13 12:38 top.bak

--由于/tmp2下没有tmp目录,所以报错,未恢复成功

[root@node1 tmp2]# cpio -idv < /tmp/top.bak.abs.cpio   --加上-d自动创建目录

cpio: Removing leading `/' from member names

tmp/top.bak

7 blocks

[root@node1 tmp2]# ll

total 8

drwxr-xr-x 2 root root 4096 Jan 13 12:39 tmp

-rw-r--r-- 1 root root 3071 Jan 13 12:38 top.bak

[root@node1 tmp2]# cpio -iv < /tmp/abc1.txt.cpio

cpio: Removing leading `/' from member names

cpio: tmp/abc/abc1.txt: No such file or directory

tmp/abc/abc1.txt

1 block

[root@node1 tmp2]# cpio -idv < /tmp/abc1.txt.cpio

cpio: Removing leading `/' from member names

tmp/abc/abc1.txt

1 block

加上--absolute-filenames参数使用绝对路径来恢复

[root@node1 tmp]# pwd

/tmp

[root@node1 tmp]# rm -f top.bak

[root@node1 tmp2]# pwd

/tmp2

[root@node1 tmp2]# cpio -iv --absolute-filenames < /tmp/top.bak.abs.cpio

/tmp/top.bak

7 blocks

[root@node1 tmp2]# cpio -iv --absolute-filenames < /tmp/top.bak.abs.cpio

cpio: /tmp/top.bak not created: newer or same age version exists

/tmp/top.bak

7 blocks

[root@node1 tmp2]# cpio -uiv --absolute-filenames < /tmp/top.bak.abs.cpio  --加上-u参数自动的将较新的档案覆盖较旧的档案

/tmp/top.bak

7 blocks

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26524307/viewspace-1071207/,如需转载,请注明出处,否则将追究法律责任。

linux中cpio文件如何,linux cpio命令的使用相关推荐

  1. linux用命令设置读权限,linux中的文件权限和chmod命令的使用

    1.linux中的文件权限 linux中用ls -al列出文件列表时,会看到第一列有rwx这样的字样,这个表示该文件的权限设置属性.在linux中,权限划分主要分为三种身份:所有者(owner或者us ...

  2. linux中对文件进行归档,linux归档压缩命令 linux中对文件进行归档的命令为

    13. 为了将当前目录下的归档文件myftp.tgz解压缩到/tmp目录下,用户可以使用命令 A. tar xvzf myftp.tgz –C /tmp B. tar : xvzf : myftp.t ...

  3. linux怎样自动检查link文件_怎样理解和识别 Linux 中的文件类型 | Linux 中国

    众所周知,在 Linux 中一切皆为文件,包括硬盘和显卡等.在 Linux 中导航时,大部分的文件都是普通文件和目录文件.但是也有其他的类型,对应于 5 类不同的作用.因此,理解 Linux 中的文件 ...

  4. linux中passwd文件位置,linux中/etc/passwd文件解析

    /etc/passwd其实保存的是用户的相关信息而不是像名字上说的密码信息,之所以这样取文件名是因为在Linux2.0之前确实保存着密码信息,之后出于安全性考虑才将用户信息和密码分开存储.现在的密码已 ...

  5. 在Linux中传输文件/目录的scp命令

    Linux管理员应该熟悉命令行环境.由于在Linux服务器中通常不安装GUI模式.SSH可能是使得Linux管理员通过远程安全方式管理服务器的最流行协议.与SSH命令一起内建的是SCP命令.SCP用于 ...

  6. linux中查看文件内容常用的命令

    文章目录 前言 cat more less head tail 前言 大家都知道查看文件,我们常常使用cat,但是这个命令的缺点在于会显示所有文件内容,对于一个大文件来说,也许我们只想看前面几行,这个 ...

  7. Linux中的文件寻址,Linux文件寻址算法:逻辑地址到物理地址的转换

    题目描述: 编写一个函数实现Linux文件寻址的算法,即读取文件当前位置到物理存储位置的转换函数,需要给出运行的测试数据,可以假设和模拟需要的数据和结构.即编写一个函数unsigned long lt ...

  8. 怎样打开kali linux中的文件,kali linux 怎么打开exe文件

    满意答案 LIR旋叶 2014.12.06 采纳率:57%    等级:10 已帮助:1119人 运行 Metasploit Framework: 依照Kali Linux网络服务策略,Kali没有自 ...

  9. linux中传输文件方法,Linux快速传输文件几种方法

    直接scp传输 [root@zenoss29 zenoss29]# time scp  MySQL-server-5.5.18-1.rhel5.i386.rpm  MySQL-client-5.5.1 ...

  10. linux的八进制文件模式,linux od-输出文件的八进制、十六进制等格式编码的字节...

    博主推荐:获取更多 linux文件内容查看命令 收藏:linux命令大全 od命令用于输出文件的八进制.十六进制或其它格式编码的字节,通常用于显示或查看文件中不能直接显示在终端的字符. 常见的文件为文 ...

最新文章

  1. “一次性”小家电之死:互联网必是杀手
  2. 怎样用springboot开发cs_SpringBoot分布式任务中间件开发 附视频讲解 (手把手教你开发和使用中间件)...
  3. SpringCloud系列之服务消费Ribbon和Feign区别
  4. html for循环正方形,JavaScript for 循环
  5. yum的基本使用(命令+案列)
  6. 图的最小生成树(Prim算法)
  7. java selenium firefox启动报错大调查
  8. 示例演示公告通知标题无缝向上滚动,文字段落无缝向上滚动,简单的wangeditor富文本编辑器,简单的音乐播放demo...
  9. 大数据课程之Flink
  10. 群晖 root_群晖洗白简单教程
  11. C和C++中字串符(String)和字符串字面量(String Literal)的区别
  12. C#安装本地nupkg包
  13. COLING 2022提交要求与ACL模板要求记录
  14. Prelude CC 2019 for Mac附激活补丁 v8.1.0中文版
  15. UltraEdit注册机
  16. 历时90天,2017 CCF大数据与计算智能大赛(BDCI)决赛落幕
  17. 如何让小孩练得一手好字?这5个小方法,家长不妨试试
  18. 电子商务和国际贸易创新
  19. canvas 刮刮卡
  20. 关于提取千位百位十位个位数字

热门文章

  1. “英语达人”的手机在线英语生活
  2. Visual C++ 2019中MFC图像处理编程(一) 位图文件的介绍
  3. 微信小程序获取手机号第一次失败,第二次成功的解决方案
  4. 媒体层图形技术之Core Animation 学习笔记
  5. 受女性青睐网络游戏更容易成功
  6. Delphi测试题——将字符串10ad200d3 中的数字合计
  7. C++网络编程之poll
  8. adb shell 报错error: device unauthorized
  9. 测试cpu玩游戏的软件,玩游戏时显卡和CPU到底哪个更重要?来看下面的测试你就会明白了...
  10. SQL查询含有%号的字段