Linux cpio 示例:创建和提取 cpio/tar 档案

举报
Tiamo_T 发表于 2022/03/23 10:49:42 2022/03/23
【摘要】 cpio 命令用于处理归档文件(例如,*.cpio 或 *.tar 文件)。 cpio 代表“复制输入,复制输出”。

cpio 命令用于处理归档文件(例如,*.cpio 或 *.tar 文件)。

cpio 代表“复制输入,复制输出”。

cpio 执行以下三个操作。

  • 将文件复制到存档
  • 从存档中提取文件
  • 将文件传递到另一个目录树

cpio 在创建存档时从标准输入中获取文件列表,并将输出发送到标准输出。

1. 创建 *.cpio 存档文件

您可以使用 cpio -ov 创建包含文件和目录的 *.cpio 存档

$ cd objects

$ ls
file1.o file2.o file3.o

$ ls | cpio -ov > /tmp/object.cpio

如上所示,ls 命令将三个对象文件名传递给 cpio 命令,cpio 生成 object.cpio 存档。

2. 提取 *.cpio 存档文件

cpio extract:要提取给定的 *.cpio 文件,请使用 cpio -iv,如下所示。

$ mkdir output

$ cd output

$ cpio -idv < /tmp/object.cpio

3. 使用选定文件创建 *.cpio 存档

以下示例仅使用 *.c 文件创建 *.cpio 存档。

$ find . -iname *.c -print | cpio -ov >/tmp/c_files.cpio

4. 使用 cpio -F 创建 *.tar 归档文件

我们已经知道如何有效地使用tar 命令

您是否知道您也可以使用 cpio 命令创建 tar 文件,如下所示?

$ ls | cpio -ov -H tar -F sample.tar

如上所示,您可以使用选项 -F 提及输出存档文件名,而不是重定向标准输出。

5. 使用 cpio 命令提取 *.tar 存档文件

您还可以使用 cpio 命令提取 tar 文件,如下所示。

$ cpio -idv -F sample.tar

6.查看*.tar存档文件的内容

要查看 *.tar 文件的内容,请执行以下操作。

$ cpio -it -F sample.tar

7. 使用符号链接指向的原始文件创建 *.cpio 存档

可以使用符号链接所引用的原始文件创建 cpio 存档,如下所示。

$ ls | cpio -oLv >/tmp/test.cpio

8. 恢复 *.cpio 时保留文件修改时间

当我们恢复 cpio 归档文件时,可以保留文件的修改时间,如下所示。

$ ls | cpio -omv >/tmp/test.cpio

9. 使用 cpio 操作 Linux 和内核映像文件

如何查看、修改和重新创建 initrd.img – 正如我们前段时间所讨论的,我们还可以使用 cpio 命令来操作 initrd.img 文件。

10. 将目录树从一个复制到另一个

cpio 允许您将一个目录内容复制到另一个目录,而无需创建中间存档。它从标准输入中读取文件列表并将其传递给目标目录。

下面的示例将 objects 目录的文件和子目录复制到 /mnt/out 目录中。

$ mkdir /mnt/out

$ cd objects

$ find . -depth | cpio -pmdv /mnt/out

在上面的例子中:

  • cpio 选项 -p 使 cpio 使用直通模式。就像管道 cpio -o 到 cpio -i 一样。
  • cpio 选项 -d 根据需要在目标目录中创建前导目录。
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。