GNU/CPIO 学习小结
CPIO 是一種binary file archiver, 同時(shí)也定義了一種文件格式(file format). CPIO software utility 被作為tape archiver,它最初是作為PWB/UNIX(Programmer's Workbech:1976, 在UNIX最開始在Bell Lab出現(xiàn)的時(shí)候,UNIX主要是用于研究目的, 隨著UNIX的商業(yè)價(jià)值逐漸被挖掘出來,一個(gè)裁剪過的UNIX 版本被開發(fā),它主要是用于作為生產(chǎn)環(huán)境,而不是用于研究。詳情見http://en.wikipedia.org/wiki/PWB/UNIX)的一部分出現(xiàn)的, 它同時(shí)也是Unix System III和Unix System V的組成部分。 然而,衍生于research unix的tar,被認(rèn)為是一種更好的solution。 但是cpio依然在許多重要的地方有其身影, 如RPM Package Manager, Linux Kernel 2.5 series initramfs, mkinitcpio以及Apple's "pax" installer archives.
GNU cpio 用于將多個(gè)文件拷貝到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。 默認(rèn)情況下, cpio創(chuàng)建binary 格式的archive, 目的是與old cpio 程序相兼容。 當(dāng)從archives抽取內(nèi)容的時(shí)候, cpio會(huì)自動(dòng)識(shí)別正在從何種格式的archive中讀取數(shù)據(jù),同時(shí)可以從不同字節(jié)序(byte-order)的機(jī)器上讀入archives。
CPIO 導(dǎo)讀
ls | cpio -ov > directory.cpio
當(dāng)創(chuàng)建一個(gè)archive的時(shí)候, cpio默認(rèn)從standard input讀入文件列表,這些文件被archived后默認(rèn)輸出到standard output中去, 或者通過指定-F 選項(xiàng)來決定輸出到何種其他device上去。
-o options: 指定創(chuàng)建archive; -v : 當(dāng)file被添加到結(jié)果archive的時(shí)候打印出其文件名。
如果archive整個(gè)文件目錄, 使用find命令可以提供完整的文件列表給cpio:
find . -print -depth | cpio -ov > tree.cpio (copy-out mode)當(dāng)從cpio archive中抽取文件的時(shí)候,有幾點(diǎn)要注意, 首先 cpio默認(rèn)的不會(huì)創(chuàng)建directory, 同時(shí)如果同名的文件如果已經(jīng)存在,cpio不會(huì)覆
蓋已存在的文件。
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中文件的內(nèi)容。它從standard input 讀入archive 文件。
copy-out mode
在copy-out mode, cpio 拷貝文件到一個(gè)archive中去, 它從standard input中讀入文件列表,對(duì)每個(gè)文件處理完后將結(jié)果輸出到standard
output中去。和find配合使用
copy-pass mode:
可以看出是copy-in 和copy-out mode兩個(gè)階段的結(jié)合,所以不必產(chǎn)生cpio archive文件 就可以完成文件的拷貝
find . -depth -print0 | cpio --null -pvd new-dir
-p|--pass-through options.
顯示cpio archive中包含的文件列表: cpio -t < tree.cpio.
轉(zhuǎn)載于:https://www.cnblogs.com/yuboyue/archive/2011/07/18/2109871.html
總結(jié)
以上是生活随笔為你收集整理的GNU/CPIO 学习小结的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一加10T发布:能流畅用6年的骁龙8+旗
- 下一篇: Switch销量下滑 任天堂:都怪半导体