• GNU/CPIO 学习小结


    CPIO 是一种binary file archiver, 同时也定义了一种文件格式(file format). CPIO software utility 被作为tape archiver,它最初是作为PWB/UNIX(Programmer's Workbech:1976, 在UNIX最开始在Bell Lab出现的时候,UNIX主要是用于研究目的, 随着UNIX的商业价值逐渐被挖掘出来,一个裁剪过的UNIX 版本被开发,它主要是用于作为生产环境,而不是用于研究。详情见http://en.wikipedia.org/wiki/PWB/UNIX)的一部分出现的, 它同时也是Unix System III和Unix System V的组成部分。 然而,衍生于research unix的tar,被认为是一种更好的solution。 但是cpio依然在许多重要的地方有其身影, 如RPM Package Manager, Linux Kernel 2.5 series initramfs, mkinitcpio以及Apple's "pax" installer archives.

    GNU cpio 用于将多个文件拷贝到cpio,tar archive,或者从cpio或tar archive 中拷贝出来。cpio支持多种archive formats: binary, old ASCII, new ASCII, crc, HPUX binary, HPUX old ASCII, old tar, POSIX.1 tar。 默认情况下, cpio创建binary 格式的archive, 目的是与old cpio 程序相兼容。 当从archives抽取内容的时候, cpio会自动识别正在从何种格式的archive中读取数据,同时可以从不同字节序(byte-order)的机器上读入archives。

    CPIO 导读

    ls | cpio -ov > directory.cpio

    当创建一个archive的时候, cpio默认从standard input读入文件列表,这些文件被archived后默认输出到standard output中去, 或者通过指定-F 选项来决定输出到何种其他device上去。

    -o options: 指定创建archive; -v : 当file被添加到结果archive的时候打印出其文件名。

    如果archive整个文件目录, 使用find命令可以提供完整的文件列表给cpio:

    find . -print -depth | cpio -ov > tree.cpio (copy-out mode)



    当从cpio archive中抽取文件的时候,有几点要注意, 首先 cpio默认的不会创建directory, 同时如果同名的文件如果已经存在,cpio不会覆
    盖已存在的文件。

    cpio -iv < tree.cpio (copy-in mode)

    如果要覆盖以及存在的同名文件,则需要指定-u option,

    cpio -iuv < tree.cpio


    CPIO's copy-in mode, copy-out mode and copy-pass mode
    copy-in mode
    在copy-in mode, cpio 从archive 文件拷贝出文件或者显示archive中文件的内容。它从standard input 读入archive 文件。



    copy-out mode
    在copy-out mode, cpio 拷贝文件到一个archive中去, 它从standard input中读入文件列表,对每个文件处理完后将结果输出到standard

    output中去。和find配合使用



    copy-pass mode:

    可以看出是copy-in 和copy-out mode两个阶段的结合,所以不必产生cpio archive文件 就可以完成文件的拷贝

    find . -depth -print0 | cpio --null -pvd new-dir

    -p|--pass-through options.




    显示cpio archive中包含的文件列表: cpio -t < tree.cpio.
  • 相关阅读:
    22. Generate Parentheses
    21. Merge Two Sorted Lists
    20. Valid Parentheses
    19. Remove Nth Node From End of List
    18. 4Sum
    JDK7新特性
    类Enum
    装饰设计模式
    模板设计模式
    反射
  • 原文地址:https://www.cnblogs.com/yuboyue/p/2109871.html
Copyright © 2020-2023  润新知