Linux cpio 示例:创建和提取 cpio/tar 档案
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 根据需要在目标目录中创建前导目录。
- 点赞
- 收藏
- 关注作者
评论(0)