Linux基础命令---cpio

cpio

从归档中复制文件,或者复制文件到归档中。此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。

Cpio 命令有三种工作模式:

1 )copy-out mode,cpio指令将文件复制到归档。它读取标准输入上的文件名列表(每行一个),将归档包写到标准输出。

2 )copy-in mode,cpio指令从归档中复制文件,从标准输入读取归档包。

3 )cpio-pass mode,从目录树复制文件到另一个目录,它从标准输入中读取要复制的文件列表。

 

1 、语法

cpio -o namelist  > archive 

cpio  -i  <  archive

cpio  -p  dst-dir < namelist

 

2 、选项列表

选项

说明

-? | --help

帮助信息

--version

显示命令版本信息

主操作模式


-i | --extract

从包中提取文件,copy-in模式

-o | --create

创建包,copy-out模式

-p | --pass-through

运行copy-pass模式

-t | --list

打印输入内容列表

-l | --list

对于每一个压缩的文件,列出压缩文件大小、解压大小、压缩比列、压缩前的文件名字

应用在所有模式的选项


-B

设置IO块的大小为5120字节

-c

使用老式跨平台的归档格式

-f

仅拷贝不匹配任意给定模式的文件

-F

用文件名代替标准输入和输出

-n | --numeric-uid-gid

在内容列表的详细信息中显示uid和gid

--quite

不打印以拷贝的块数

-v | --verbose

详细信息

-V | -dot

每处理一个文件就打印一个“.”

应用于copy-in的徐昂想


-b | --swap


-r | --rename

交互式重命名

-E

把指定文件的内容当做匹配字符串

应用于copy-out的选项


-A | --append

追加到文档的结尾

-O

使用包文件名,而不是标准输入输出

应用于copy-pass的选项


-l | --link

在执行时尽可能创建链接,而不是复制文件

应用于copy-in和copy-out


--absolute-filenames

文件名不出去文件系统前缀

--no-absolute-filenames

当前目录创建所有文件

应用于copy-out和copy-pass


-0 | --null

输入文件名以null字符结尾

-a | --reset-access-time

文件读取后,还原文件的访问时间

-I

从文件读入

-R | --owner

设置所有文件的组合用户信息

应用于copy-in和copy-pass


-d

必要时创建目录

-m

创建文件是,保留文件修改时间属性

-u

无条件覆盖

 

3 、例子代码

% ls | cpio -ov > directory.cpio

归档当前目录下的内容,并且制定输出文件

% find . -print -depth | cpio -ov > tree.cpio

存档整个目录树, find 命令可以将文件列表提供给 cpio 。这将获取当前目录中的所有文件,以及下面的目录,并将它们放置在归档目录 tree.cpio

% cpio -iv < directory.cpio

这将检索存档在文件 directory.cpio 中的文件,并将它们放在当前目录中

% cpio -idv < tree.cpio

这将获取存档 tree.cpio 的内容,并将其解压缩到当前目录。

% find . -depth -print0 | cpio --null -pvd new-dir

将当前目录的文件和子目录复制到一个名为 new-dir 的新目录中

 

4 、实例

1 )将当前目录归档

[root@localhost weijie]#  ls | cpio -o > mybak           // ls 的输出定向到 cpio ,然后归档

[root@localhost weijie]#  ls

11.c  1.c  2.c 3.c  4.c  5.c 6.c  mybak

2 )从归档中提取文件

[root@localhost weijie]#  cpio -i < mybak                   // 从归档中提取

cpio:  未创建  11.c :已有更新或同样新的版本存在

cpio:  未创建  5.c :已有更新或同样新的版本存在

cpio:  未创建  6.c :已有更新或同样新的版本存在

cpio:  未创建  mybak :已有更新或同样新的版本存在

[root@localhost weijie]#  ls

11.c  1.c  2.c  3.c  4.c  5.c  6.c  mybak

3 )拷贝文件

[root@localhost weijie]#  cat list.c 

1.c

2.c

3.c

[root@localhost weijie]#  cpio -p bak/ < list.c          // list.c 中的内容当做文件列表,然后拷贝到 bak 目录

cpio:  忽略空行

[root@localhost weijie]#  ls bak/

1.c  2.c  3.c






做了一个Linux学习的平台,目前出来一个雏形,各位可以参考使用
链接: https://pan.baidu.com/s/1GOLVU2CbpBNGtunztVpaCQ   密码:n7bk

201554yh4h83ez3000nn0u.gif

4.gif   (1.3 MB, 下载次数: 0)

下载附件

2018-11-21 20:15 上传


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29270124/viewspace-2282917/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/29270124/viewspace-2282917/

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值