Unix cpio命令详细解析

系统 其他OS
在copy-pass模式中, Unix cpio把文件从一棵目录树复制到另一棵, 它结合了 copy-in 和 copy-out 的操作, 但不使用归档包。

我们在文章中, 主要讲解一下关于Unix cpio的知识。Unix cpio 可以从 cpio 或 tar 格式的归档包中存入和读取文件, 归档包是一种包含其他文件和有关信息的文件。

有关信息包括:文件名, 属主, 时标(timestamp), 和访问权限。 归档包可以是磁盘上的 其他文件, 也可以是磁带或管道。

Unix cpio 有三种操作模式:
在copy-out模式中,Unix cpio 把文件复制到归档包中。它从标准输入获得文件名列表 (一行一个), 把归档包写到标准输出。生成文件名列表的典型方法是使用find 命令; 你可能要在 find 后面用上 -depth选项, 减少因为进入没有访问权限的目录而引起的麻烦。

在copy-in模式中, cpio 从归档包里读取文件, 或者列出归档包里的内容。它从标准输入读入归档包。任何不是选项的命令行参数被视为shell的通配符模式串 (globbing pattern); 在归档包中, 只有文件名匹配这些模式串的文件才能复制出来。 和 shell 中不一样, 文件名起始处的 '.' 可以匹配模式串起始处的通配符, 文件名中的 '/' 也可以匹配通配符。 如果没有给出模式串, 那么将读出所有文件。

在copy-pass模式中, Unix cpio把文件从一棵目录树复制到另一棵, 它结合了 copy-in 和 copy-out 的操作, 但不使用归档包。 cpio从标准输入读取欲复制的文件名列表; 目标目录作为非选项的命令行参数给出。

Unix cpio支持下列的归档格式: binary, old ASCII, new ASCII, crc, HPUX binary, HPUX old ASCII, old tar, 和 POSIX.1 tar。

"binary"格式是过时格式, 因为它保存文件信息的方法无法应用在不同体系的机器间移植。"old ASCII" 格式可以跨平台使用, 但是不能用于超过 65536 个 i 节点的文件系统中。

"new ASCII" 格式可以跨平台使用, 也适用于任意大小的文件系统, 但不是所有版本的 cpio 都支持; 目前只有 GNU 和 System VR4 的 cpio 支持。"crc" 格式 类似于 "new ASCII" 格式, 同时对每个文件计算校验和。cpio 在创建归档包时算出校验和, 解开文件时进行校验。 "HPUX" 格式用于兼容 HP UNIX 的 Unix cpio, 它用了独特的方法来保存设备文件。

"tar" 格式用以兼容 tar 程序。它不能归档文件名超过 100 个字符的文件, 也不能归档特殊文件 (块设备或字符设备)。 "POSIX.1 tar" 格式不能归档文件名超过 255 个字符的文件(小于, 除非文件名的最右边有一个 "/")。

缺省情况下, Unix cpio 为了兼容老式的 cpio 程序, 创建 "binary" 格式的归档包。当展开归档包时, cpio 能够自动识别归档包的格式, 而且可以读取在其他字节顺序的机器上创建的归档包。

Unix cpio 的某些选项只能用在对应的操作模式上; 参见总览小节, 里面列出了什么选项可以用在什么模式上。

【编辑推荐】

  1. 要努力学习Unix系统
  2. Unix内核知识讲解
  3. 走进Unix Shell知识讲解
  4. 推荐Unix操作系统之强大理由
  5. 关于Unix操作系统总结
责任编辑:小霞
相关推荐

2010-04-28 14:30:38

Unix系统Cpio

2010-05-06 13:44:44

Unix系统

2010-04-19 13:47:20

Unix操作系统

2010-05-04 15:22:25

Unix系统

2010-03-04 13:54:39

Linux压缩命令

2010-05-10 17:26:14

Oracle sqlp

2010-04-20 10:00:58

Unix操作系统

2010-04-07 17:55:12

Unix命令

2010-04-09 16:03:30

Unix操作系统

2010-03-08 10:49:29

Linux scp命令

2010-04-29 10:15:01

Unix系统

2009-10-21 14:13:36

Linux压缩打包方法

2020-10-16 06:57:46

UnixLinux命令操作系统

2010-01-22 10:54:45

Linux操作系统PS命令

2012-05-04 09:24:02

Linuxps命令

2010-05-04 16:19:12

Unix命令

2010-04-07 18:15:01

2010-04-30 13:38:51

Unix at命令

2010-05-07 16:39:59

Unix主机

2011-08-11 18:41:29

cpio中文man
点赞
收藏

51CTO技术栈公众号