zoukankan      html  css  js  c++  java
  • linux cpio 备份命令

     cpio 命令 

    [root@linux ~]# cpio -covB > [file|device] <==备份
    [root@linux ~]# cpio -icduv < [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@linux ~]# find / -print | cpio -covB > /dev/st0
    # 一般来说,使用 SCSI 介面的磁带机,代号是 /dev/st0 喔!

    范例二:检查磁带机上面有什么文件?
    [root@linux ~]# cpio -icdvt < /dev/st0
    [root@linux ~]# cpio -icdvt < /dev/st0 > /tmp/content
    # 第一个动作当中,会将磁带机内的档名列出到萤幕上面,而我们可以透过第二个动作,
    # 将所有的档名通通纪录到 /tmp/content 文件去!

    范例三:将磁带上的资料还原回来~
    [root@linux ~]# cpio -icduv < /dev/st0
    # 一般来说,使用 SCSI 介面的磁带机,代号是 /dev/st0 喔!

    范例四:将 /etc 底下的所有『文件』都备份到 /root/etc.cpio 中!
    [root@linux ~]# find /etc -type f | cpio -o > /root/etc.cpio
    # 这样就能够备份啰~您也可以将资料以 cpio -i < /root/etc.cpio
    # 来将资料捉出来!!!!

    这个Linux压缩命令系列就到这里了,如果有可能的话希望还能和大家分享一些Linux命令的东西。

    系统备份命令 cpio

    另外一个复杂的备份命令,

    cpio命令有三种模式:
    copy-out 将系统的文件生成一个cpio格式的包
    copy-in 将一个cpio格式的包解开
    copy-pass 相当于一个cp命令,不进行任何的压包和解包的工作,经常用来复
    制文件分别对应的参数是-o,-i,,-p这样记忆就比较方便了,linux命令的参数虽然很
    多,但是还是有规律可以寻找的。

    创建:
    原始形态:
    [root@laptop tmp]# cpio -o -O photo.cpio
    按回车以后要手工输入你所需要打包的文件名。以Ctrl+D组合键结束。

    [root@laptop tmp]# ls
    Dcp_0803.jpg Dcp_0810.jpg Dcp_0815.jpg Dcp_0820.jpg Dcp_0827.jpg
    Dcp_0804.jpg Dcp_0811.jpg Dcp_0816.jpg Dcp_0821.jpg Dcp_0828.jpg
    Dcp_0805.jpg Dcp_0812.jpg Dcp_0817.jpg Dcp_0822.jpg
    Dcp_0808.jpg Dcp_0813.jpg Dcp_0818.jpg Dcp_0825.jpg
    Dcp_0809.jpg Dcp_0814.jpg Dcp_0819.jpg Dcp_0826.jpg

    [root@laptop tmp]# ls | cpio -o > photo.cpio
    cpio: Dcp_0803.jpg: truncating inode number
    cpio: Dcp_0804.jpg: truncating inode number
    cpio: Dcp_0805.jpg: truncating inode number
    cpio: Dcp_0808.jpg: truncating inode number
    cpio: Dcp_0809.jpg: truncating inode number
    cpio: Dcp_0810.jpg: truncating inode number
    cpio: Dcp_0811.jpg: truncating inode number
    cpio: Dcp_0812.jpg: truncating inode number
    cpio: Dcp_0813.jpg: truncating inode number
    cpio: Dcp_0814.jpg: truncating inode number
    cpio: Dcp_0815.jpg: truncating inode number
    cpio: Dcp_0816.jpg: truncating inode number
    cpio: Dcp_0817.jpg: truncating inode number
    cpio: Dcp_0818.jpg: truncating inode number
    cpio: Dcp_0819.jpg: truncating inode number
    cpio: Dcp_0820.jpg: truncating inode number
    cpio: Dcp_0821.jpg: truncating inode number
    cpio: Dcp_0822.jpg: truncating inode number
    cpio: Dcp_0825.jpg: truncating inode number
    cpio: Dcp_0826.jpg: truncating inode number
    cpio: Dcp_0827.jpg: truncating inode number
    cpio: Dcp_0828.jpg: truncating inode number
    2792 blocks

    注:-o 参数也可义用 --create替代,表示正在使用copy-out模式,
    -O 参数只能和-o一起使用,表示出于out模式时,指定生成的文件。

    root@laptop tmp]# ls | cpio -o -O photo.cpio
    这个命令,是等效的,只不过前者用重定向符号实现的而已。由此可以体现Linux命令
    的复杂还有变化多样,所以要多思考。

    查看,解包:

    解包

    [root@laptop tmp]# cpio -i -I photo.cpio
    2792 blocks

    注:-i 参数是表示使用copy-in模式
    查看一个cpio包里的文件列表的参数和tar的参数有点相像,都是用-t参数,
    也可以用--list替代。
    -I 参数只和-t , -i 两个参数连用,表示在copy-in模式时指定一个cpio包。
    有点像tar包里的-f参数,无论是打tar包还是解tar包或者是查看tar的内容
    ,都要加-f参数一样的道理,在这里,cpio只不过分成了copy-in和copy-out
    两个部分而已。

    [root@laptop tmp]# cpio -t -I photo.cpio
    Dcp_0803.jpg
    Dcp_0804.jpg
    Dcp_0805.jpg
    Dcp_0808.jpg
    Dcp_0809.jpg
    Dcp_0810.jpg
    Dcp_0811.jpg
    Dcp_0812.jpg
    Dcp_0813.jpg
    Dcp_0814.jpg
    Dcp_0815.jpg
    Dcp_0816.jpg
    Dcp_0817.jpg
    Dcp_0818.jpg
    Dcp_0819.jpg
    Dcp_0820.jpg
    Dcp_0821.jpg
    Dcp_0822.jpg
    Dcp_0825.jpg
    Dcp_0826.jpg
    Dcp_0827.jpg
    Dcp_0828.jpg
    2792 blocks

    查看一个cpio包里的文件列表的参数和tar的参数有点相像,都是用-t参数,这里可以
    用--list替代。

    还有一些高级的应用参数:
    -u
    解包时如果文件已经在也强行覆盖
    [root@laptop tmp]# cpio -i -I test.cpio -u
    [root@laptop tmp]# cpio -i -u -I test.cpio

    -f
    文件匹配参数,但是是一个反向的,就是符合这个指定的文件不解包
    [root@laptop tmp]# cpio -i -I test.cpio -f *.rpm
    这条命令的结果是test.cpio里除了*.rpm文件都会解包出来。

    -L
    这个参数是在打包的时候用的,如果被打包的文件中有符号连接的话,这个参数将会把连接的目标文件打入包中,而不是仅仅把符号连接打包。
    [root@laptop tmp]# ls | cpio -o -O newtest.cpio -L

    -R
    这个参数只用在解包的时候,是用来给解包出来的文件设置所有者和所属组的。但是用户和组的关系必须已经在passwd,group两个文件中存在!!!
    [root@laptop tmp]# cpio -i -I test.cpio -R yue.pye
    [root@laptop tmp]# cpio -i -I test.cpio -R yueye
    这里是两种表示用户组之间关系的方式一个是.还有一个是:

    -r
    这个参数只在解包是有用,而且不能和-u参数同时使用,否则失效,他的作用是当包中的文件和解包所在目录下的某个文件重名的时候自动提示是否需要更名。
    [root@laptop tmp]# cpio -i -I test.cpio -r
    rename 12.1 -> a
    rename backgroud -> c
    rename bin -> bindir
    rename crystal ->

    -A
    这个参数只用在压包的时候,用来向已经存在的cpio包添加文件的
    [root@laptop tmp]# cpio -o -O test.cpio -A
    [root@laptop tmp]# cpio -o -A -O test.cpio

  • 相关阅读:
    从零开始学习OpenCL开发(一)架构
    Android平台利用OpenCL框架实现并行开发初试
    g++ error: expected nested-name-specifier before 'XXX'
    Linux命令之xargs的分析及隐患
    Linux目录结构
    Linux系统目录/bin /sbin /usr/bin /usr/sbin和/lib /usrlib的一些分析
    rpm包制作
    git与svn的使用比较
    SVN的错误: working copy locked
    Linux远程桌面
  • 原文地址:https://www.cnblogs.com/lvdongjie/p/3835563.html
Copyright © 2011-2022 走看看