- 简介
- 第一章 - 关于 CD
- 第二章 - 基本命令
- Hack-7 Grep
- Hack-8 Grep 与正则表达式
- Hack-9 Find 命令
- Hak-10 重定向
- Hack-11 Join 命令
- Hack-12 Tr 命令
- Hack-13 Xargs 命令
- Hack-14 Sort 命令
- Hack-15 Uniq 命令
- Hack-16 Cut 命令
- Hack-17 Stat 命令
- Hack-18 Diff 命令
- Hack-19 Ac 命令
- Hack-20 让命令在后台执行
- Hack-21 Sed 替换基础
- Hack-22 Awk 简介
- Hack-23 VIM 基本入门
- Hack-24 Chmod 命令
- Hack-25 Tail -f -f
- Hack-26 Less 命令
- Hack-27 Wget 下载器
- 第三章 - SSH 技巧
- 第四章 - 日期设置
- 第五章 - PS* 介绍
- 第六章 - 压缩和打包
- 第七章 - 历史命令
- 第八章 - 系统任务管理
- 第九章 - 安装软件
- 第十章 - LAMP 套装
- 第十一章 - Bash 脚本
- 第十二章 - 系统性能监控
- 第十三章 - 额外的技巧
文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
Hack-51 Cpio 命令
Cpio 命令
这个 cpio
我是第一次听说,如有不妥的地方还请大家指正。
cpio
命令是用来处理归档文件的,这里的归档文件包括 .cpio
, .tar
cpio stands for “copy in, copy out”.
说的很明白,复制进来,复制出去. 果真 Linux 的软件命名都是根据内容来的,直观易懂。
它可以干三种事:
- 把文件复制到某个归档文件中
- 从某个归档文件中提取文件
cpio
从标准输入中读取文件列表,创建一个归档文件后把这些文件都输入到里面,最后再输出到标准输出中(或者重定向).
创建 cpio 归档
➤ cd test/
➤ ls
cal_random.sh catshadow.c numbers.bz2 vpnn
catshadow.bz2 helloword.py test.php
➤ ls | cpio -ov > test.cpio # o-创建归档文件
cal_random.sh
catshadow.bz2
catshadow.c
helloword.py
numbers.bz2
test.php
vpnn
248 blocks
➤ ls -l test.cpio
-rw-rw-r-- 1 mr mr 124K 1 月 5 20:46 test.cpio
正如你所看到的,把 ls
列出的文件通过管道传递给 cpio
后, cpio
将他们压缩,然后我们再通过重定向,导入到了 test.cpio
文件中。
提取 cpio 中的文件
接着上一个目录中的内容,我们新建一个目录,把文件提取出来:
➤ mkdir cpio
mkdir: created directory ‘cpio’
➤ cd cpio/
➤ ls
➤ cpio -idv < ../test.cpio # i-从归档文件中提取
cal_random.sh
catshadow.bz2
catshadow.c
helloword.py
numbers.bz2
test.cpio
test.php
vpnn
494 blocks
➤ ls
cal_random.sh catshadow.c numbers.bz2 test.php
catshadow.bz2 helloword.py test.cpio vpnn
➤
看到了么, cpio
从标准输入中读取了归档文件,然后把里面的文件提取了出来。
归档特定的文件
➤ find . -iname *.c -print | cpio -ov >/tmp/c_files.cpio
./catshadow.c
1 block
➤
这里没啥好说的,就是利用了 find
而已。
用 cpio 创建 tar 文件
我们可以用 cpio
创建一个 .tar
类型的文件:
ls | cpio -ov -H tar -F sample.tar
殊途同归。
怎样提取呢?
cpio -idv -F sample.tar
用上面这个。
我们可以看到,除了利用重定向,我们还可以用 -F
的参数来定义所要操作的文件。
还有,不解压查看 tar
文件里面的文件名:
cpio -it -F sample.tar
作者还列举了几个不常用的:
1.将符号链接所指向的内容打包:
ls | cpio -oLv >/tmp/test.cpio
2.保留文件的修改时间
ls | cpio -omv >/tmp/test.cpio
3.拷贝文件夹
$ mkdir /mnt/out
$ cd objects
$ find . -depth | cpio -pmdv /mnt/out
个人感觉 cpio
像是一个文件流操作器,压缩也好,解压也好,复制也好,都是以一种数据流的形式进行操作。
扩展阅读
本书简介:
- Linux 进阶技巧
- 巧妙的命令组合
- Bash 某些技巧
- 一共一百零一个(包括充数的)
- 最后有个奖励章(额外技巧)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论