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.

转载于:https://www.cnblogs.com/yuboyue/archive/2011/07/18/2109871.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/263354.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java使用数组作为Map的key

先说结论&#xff1a;Map使用数组作为key&#xff0c;存放的是其地址 我们用如下代码进行测试&#xff1a; 我们的本意是 将[‘a’,‘b’,‘c’]的字符数组存放入map且对应的value为1查询map中是否包含key为[‘a’,‘b’,‘c’]的键值对将[‘a’,‘b’,‘c’]的字符数组对应的…

[Jobdu] 题目1337:寻找最长合法括号序列

题目描述&#xff1a;给你一个长度为N的&#xff0c;由’(‘和’)’组成的括号序列&#xff0c;你能找出这个序列中最长的合法括号子序列么&#xff1f;合法括号序列的含义便是&#xff0c;在这个序列中&#xff0c;所有的左括号都有唯一的右括号匹配&#xff1b;所有的右括号都…

电脑电视兼容成科技行业新课题

随著深受网民喜爱的网络娱乐节目层出不穷&#xff0c;科技行业一个尚未解决的问题被提上日程&#xff1a;发明让用户得以在电视机上随意收看网络节目的产品。眼下&#xff0c;微软(Microsoft Corp.)、苹果电脑(Apple Computer Inc.)和英特尔(Intel Corp.)等多家行业巨头正在紧锣…

LeetCode—49. 字母异位词分组

49. 字母异位词分组 题目描述&#xff1a; 给你一个字符串数组&#xff0c;请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。 字母异位词 是由重新排列源单词的字母得到的一个新单词&#xff0c;所有源单词中的字母通常恰好只用一次。 考察重点&#xff1a;转为…

标准模板库(STL)学习指南之List容器

原文地址&#xff1a;http://dozb.bokee.com/1872684.html [文章导读]STL的目的是标准化组件&#xff0c;这样就不用重新开发&#xff0c;可以使用现成的组件[正文] 什么是STL呢&#xff1f;STL就是Standard Template Library&#xff0c;标准模板库。这可能是一个历史上最令人…

移动web性能优化笔记

移动web性能优化 最近看了一些文章&#xff0c;对移动web性能优化方法&#xff0c;做一个简单笔记 笔记内容主要出自 移动H5前端性能优化指南和移动前端系列——移动页面性能优化 转载于:https://www.cnblogs.com/GongQi/p/4534392.html

mysql04

连接查询 连接方式 1.交叉连接&#xff1a;交叉连接是将两个表不设定任何条件的连接结果。这种方式会产出好多个无效行。所以不用。 2.内连接 语法 select * from tb_name join tb2_name on tb_name.idtb2_name.id(注意 两个id字段的值应该是相等的&#xff09; 3.外连接 左&am…

还是动态生成一个控件

首先&#xff0c;利用System.Type.GetType方法&#xff0c;获得字符串中指定的控件的类型实例。 这里需要注意这个字符串的语法&#xff0c;根据msdn的解释&#xff1a; 按名称和签名隐藏会考虑签名的所有部分&#xff0c;包括自定义修饰符、返回类型、参数类型、标记和非托管调…

面向对象和面向过程的区别

面向过程就是分析出解决问题所需要的步骤&#xff0c;然后用函数把这些步骤一步一步实现&#xff0c;使用的时候一个一个依次调用就可以了。 面向对象是把构成问题事务分解成各个对象&#xff0c;建立对象的目的不是为了完成一个步骤&#xff0c;而是为了描叙某个事物在整个解…

LeetCode—284. 顶端迭代器

284. 顶端迭代器 题目描述&#xff1a; 请你在设计一个迭代器&#xff0c;在集成现有迭代器拥有的 hasNext 和 next 操作的基础上&#xff0c;还额外支持 peek 操作。 实现 PeekingIterator 类&#xff1a; PeekingIterator(Iterator nums) 使用指定整数迭代器 nums 初始化迭…

sql查询

连接查询&#xff08;多表查询&#xff09; from 表1 [连接方式] join 表2 [on 连接条件]&#xff1b; 交叉连接&#xff1a; select * from 表1 join 表2 交叉查询查出的数据比较混乱 所以用的比较少。 内连接&#xff1a; from 表1 [inner] join 表2 on 表1.字段1…

我想和你一起去这样一个地方

当我从网站看到这则图片,我不禁惊叹有这样一个世外桃源,可以这样漂亮这样水天一色,我是多渴望能够与深爱的人一起去这个地方,享受我们休闲的白天,度过我们浪漫的夜晚,就这样,我也愿意和你每天每夜呆在一起.当我看到这则相片的时候,我心里只想着他,想和他一起去度假,我很喜欢痴住…

LeetCode—50. Pow(x, n)

50. Pow(x, n) 题目描述&#xff1a; 实现 pow(x, n) &#xff0c;即计算 x 的 n 次幂函数&#xff08;即&#xff0c;x^n &#xff09;。 考察重点&#xff1a;倍乘&#xff0c;使用递归&#xff0c;每次addN取2,4,8,16…个数进行累乘&#xff0c;直到addN > n,则用n-ad…

Vue学习笔记(八) 组件进阶

1、插槽 &#xff08;1&#xff09;插槽内容 像 HTML 元素一样&#xff0c;我们常常需要给组件传递内容 比如在下面的例子中&#xff0c;我们给自定义组件 prompt-info 传入 出错啦 的文本 <!DOCTYPE html> <html><head><title>Demo</title><…

php结合jquery异步上传图片(ajaxSubmit)

2019独角兽企业重金招聘Python工程师标准>>> php结合jquery异步上传图片&#xff08;ajaxSubmit&#xff09;&#xff0c;以下为提交页面代码&#xff1a; <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/T…

使 Framework 2.0 的程序集不用安装 Framework 就可以运行的工具免费发布了

感谢大家长时间以来对 MaxtoCode 的支持.Jason.NET 决定推出一款免费的 Framework 2.0 打包工具.它可以使你的 .NET 程序在不安装 Framework 的情况下依然正常运行. 下面有一个 著名的大型开源项目 SharpDevelop (C# 的 IDE) 的例子. 下载地址: http://www.maxtocode.com.cn/do…

LeetCode—287. 寻找重复数

287. 寻找重复数 题目描述&#xff1a; 给定一个包含 n 1 个整数的数组 nums &#xff0c;其数字都在 [1, n] 范围内&#xff08;包括 1 和 n&#xff09;&#xff0c;可知至少存在一个重复的整数。 假设 nums 只有一个重复的整数 &#xff0c;返回这个重复的数 。 你设计的…

发发牢骚,觉得走c#这条路,不该太浮躁

校园招聘结束了&#xff0c;腾讯&#xff0c;华为&#xff0c;百度&#xff0c;完美时空&#xff0c;网易&#xff0c;阿里&#xff0c;让我觉得.NET很受歧视。清一色的C/C,JAVA&#xff0c;只有网易有一点.Net的&#xff0c;但是都是非核心的运维工作。 不错&#xff0c;招.N…

Microsoft Windows Workflow Foundation 入门

Microsoft Windows Workflow Foundation 的包含在 .Net Framework 3.0 中&#xff0c;除此之外i&#xff0c;基于它做开发还要安装 Visual Studio 2005 Extensions for Windows Workflow Foundation 。本文撰写的对象为 Windows Workflow Foundation beta 1&#xff1a;开发人员…