博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linux基础命令---cpio
阅读量:6847 次
发布时间:2019-06-26

本文共 2158 字,大约阅读时间需要 7 分钟。

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,然后归档

      1 块

      [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:已有更新或同样新的版本存在

      1 块

      [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: 忽略空行

      1 块

      [root@localhost weijie]# 
ls bak/

      1.c  2.c  3.c

转载地址:http://cnlul.baihongyu.com/

你可能感兴趣的文章
深度有趣 | 12 一起来动动手
查看>>
相关算法排序安排
查看>>
css的bug:
查看>>
《Redis设计与实现》读书笔记
查看>>
waiting for changelog lock.
查看>>
小白学爬虫-批量部署Splash负载集群
查看>>
你离BAT之间,只差这一套Java面试题
查看>>
laravel package 推荐,数据备份
查看>>
Synchronized锁在Spring事务管理下,为啥还线程不安全?
查看>>
环境变量PATH cp命令 mv命令 文档查看cat/more/less/head/tail
查看>>
阿里云亮相2019联通合作伙伴大会,边缘计算等3款云产品助力5G时代产业数字化转型...
查看>>
dubbo源码分析-服务端发布流程-笔记
查看>>
阿里云发布Apsara SA系列混合云存储阵列
查看>>
GoJS教程:链接模版
查看>>
QListWidget方式显示缩略图
查看>>
金三银四:蚂蚁金服JAVA后端面试题及答案之二面
查看>>
Ubuntu 外网不通解决方案
查看>>
OSChina 周六乱弹 —— 历史总是惊人的相似
查看>>
MySQL 大小写
查看>>
div块上下左右居中
查看>>