zoukankan      html  css  js  c++  java
  • cpio实例讲解

    功能说明:备份文件。

    补充说明:cpio是用来建立,还原备份档的工具程序,它可以加入,解开cpio,img或tra备份档内的文件。

    cpio文件的类型判断:

    [root@localhost test]# file test.cpio
    test.cpio: ASCII cpio archive (SVR4 with no CRC)
     

    cpio实例讲解

    1、常用操作模式

    (1)备份:cpio -ocvB    > [ file | device ]
    (2)还原:cpio -ivcdu   >
    [ file | device ]
    (3)查看:cpio -ivct      >
    [ file | device ]

    2、相关例子

    1)cpio-out模式

    (1)找出当前目录下的所有文件,然后将它们打包进一个cpio压缩包文件

    find . -depth | cpio -ocvB > backup.cpio 或  find . -depth -print | cpio -ocvB > backup.cpio
    注意:cpio 建立起来的归档文件包括文件头和文件数据两部分。文件头包含了对应文件的信息。如文件的 UID,GID,连接数以及文件大小等。其好处是可以保留硬连接,在恢复时默认情况下保留时间戳,无文件名称长度的限制

    (2)将当前目录下名为inittab文件加入initrd.cpio包中
    命令1:find . -name inittab -depth | cpio -ovcB -A -F initrd.cpio 
    命令2:find . -name inittab -depth | cpio -ovcB -A -O initrd.cpio
    命令3:find . -name inittab -depth | cpio -ovcB -A --quiet  -O  initrd.cpio(--quit:表示不显示复制块)

    cpio --absolute-filenames -vtc < boot.cpio(不忽略文件列表清单的文件名最前面的“/")
    cpio --no-absolute-filenames -vtc < boot.cpio(默认是忽略文件列表清单的文件中最前面的

    (2)从cpio压缩包中的解压出文件
    cpio --absolute-filenames -icvu < test.cpio(解压到原始位置,解压出来的每个文件的时间属性改为当前时间)
    cpio --absolute-filenames -icvum < test.cpio(解压到原始位置,同时不改变解压出来的每个文件的时间属性)

    cpio  -icvu < test.cpio(解压到当前目录下)或者 cpio  -icvum < test.cpio

    (3)在解包cpio时,对解包出来的文件进行交互的更名
    cpio -icvdu -r < grub.cpio

    (4)将cpio包中的文件解压并输入标准输出
     cpio -icvu --to-stdout < grub.cpio
    注意:既然解压到标准输出,所以就不能使用-d参数了

    3)cpio-out模式

    (1)复制文件并更改文件的属主与属组
     find .  -depth | cpio -R ruanxi:ruanxi -pL  /backup/

    4)分析系统目录/boot下的initrd-2.6.30.9.img文件
    [
    root@Server tmp]# file /boot/initrd-2.6.30.9.img
    /boot/initrd-2.6.30.9.img: gzip compressed data, from Unix, last modified: Fri Nov 13 22:12:38 2009, max compression
    #由上面可知道,
    initrd-2.6.30.9.img它是一个gzip文件
    -------------------------------------------------------------------
    [root@Server tmp]# cp /boot/initrd-2.6.30.9.img  ./initrd.img.gz
    [root@Server tmp]# gzip -d initrd.img.gz
    #通过gzip指令解压出文件
    -------------------------------------------------------------------
    [root@Server tmp]# file initrd.img
    initrd.img: ASCII cpio archive (SVR4 with no CRC)
    #可知解压出的文件是一个cpio压缩包
    [root@Server tmp]# cpio -ivcdu < initrd.img
    #最后再使用cpio指令解

    来自: http://hi.baidu.com/9812658/blog/item/8ada5e0187890183d53f7c65.html

  • 相关阅读:
    相册框架之AssetsLibrary
    内存管理
    xcode 配置系统环境变量 Preporocessing 预编译宏的另一种写法, 系统的DEBUG 由来
    LeetCode 最大子序和
    牛客 计算数组的小和
    牛客 未排序整数数组中累加和小于等于给定值的最长子数组长度
    牛客 未排序整数数组中累加和为给定值的最长子数组长度
    AtCoder ABC 140D Face Produces Unhappiness
    AtCoder ABC 140E Second Sum
    LeetCode 求众数 II
  • 原文地址:https://www.cnblogs.com/cnland/p/2945571.html
Copyright © 2011-2022 走看看