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基础命令---cpio的更多相关文章

  1. Linux基础命令小结(超全!!)

    Linux目录结构 1.bin 存放经常使用的指令比如ll,cp 2.sbin 系统管理员使用的系统管理指令 3.home 存放普通用户的住目录 4.root 系统管理员的用户主目录 5.boot 存 ...

  2. Linux基础命令整合

    linux基础命令整理 1.系统相关命令 shutdown -h now 关闭系统(1) init 0 关闭系统(2) telinit 0 关闭系统(3) shutdown -h hours:minu ...

  3. 第四节,Linux基础命令

    第四节,Linux基础命令 命令是系统操作员对系统传入的指令,传入指令后回车,系统接收到指令做出相应的行为 1.查看用户位于系统什么位置 [pmd]检查操作用户位于系统的什么位置 命令         ...

  4. 【Python之路】第一篇--Linux基础命令

    pwd 命令 查看”当前工作目录“的完整路径 pwd -P # 显示出实际路径,而非使用连接(link)路径:pwd显示的是连接路径 .   表示当前目录 ..  表示上级目录 /  表示根目录 ls ...

  5. linux基础命令学习笔记(二)

    linux基础命令学习笔记(二) 1.kill :终止进程  kill pid (唯一标示一个进程) kill -9  强制终止  kill -15 命令未结束不能终止 # ps aux 查看所有进程 ...

  6. 2.Linux基础命令

    linux内一切皆文件,没有文件夹只有目录,目录也是一种文件 1.一些常用按键: 将鼠标的光标从虚拟机里切换回来:Ctrl+Alt 拖动Ubuntu内的对话框:Alt键+鼠标左键拖动 清屏:Ctrl+ ...

  7. linux基础命令一

    linux基础命令一 1.date命令 date命令介绍:显示或者设置系统日期 date命令的语法: 显示日期:date  [options...]  [+FORMAT] FORMAT:为显示日期的格 ...

  8. linux基础命令:

    linux基础命令: 显示 echo 输出我写的内容 ls 查看当前目录的文件 pwd 查看当前目录 ifconfig 查看网卡信息 grep 过滤 -v 取反 -n man 查看命令的帮助信息 md ...

  9. 常用的linux基础命令

    常用的linux基础命令 1.ls 显示目录属性 -l:(也可以简写成ll),列表显示权限等属性 -a:显示所有文件包括隐藏文件等 -d:只列出目录本身 2.chgrp 改变档案所属群组 eg:chg ...

随机推荐

  1. Yii2 使用json 和设置component 中'format' => yii\web\Response::FORMAT_JSON 的区别

    在Yii2中如果设置了 'response' => [  'format' => yii\web\Response::FORMAT_JSON,  'charset' => 'UTF- ...

  2. TOP100summit 2017 七牛云许式伟:不用JAVA和C语言,我为什么坚持Go语言

    本文编辑:Cynthia 2009年,谷歌发布第二款开源编程语言,Go语言.8年过去了,很多初创公司早期使用Go进行开发,包括云计算巨头Docker.而Go语言在中国的普及程度还比不上JAVA和C语言 ...

  3. opencv3在CMakeLists.txt中的调用问题

    在cmake工程中使用opencv需要在CMakeLists.txt文件中加以调用,在opencv2.xx版本,可以用以下语句 # 寻找OpenCV库 find_package( OpenCV REQ ...

  4. POJ 1700 - Crossing River

    Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 13982   Accepted: 5349 Description A gr ...

  5. Oracle体系结构之控制文件管理

    控制文件作用:记录了数据库的结构和行为,有多少个数据文件,日志文件及其位置名称,状态,维护数据库的一致性,即记录了数据库的启动SCN号和终止SCN号. 控制文件的位置和个数记录在参数文件中,通常控制文 ...

  6. 导入音乐到iPhone

    如果出现iCloud音乐资料库已打开 则需要在手机端设置:打开设置,找到音乐一栏,关闭icloud音乐资料库 http://baijiahao.baidu.com/s?id=1572411750316 ...

  7. python3学习笔记(5)_slice

    #python3 学习笔记17/07/10 # !/usr/bin/env python3 # -*- coding:utf-8 -*- #切片slice 大大简化 对于指定索引的操作 fruits ...

  8. Python Cookbook 笔记--12章并发编程

    <Python Cookbook(第3版)中文版> 1.队列queue的有些方法是线程不安全的,在多线程中最好别用 2.需要限制一段代码的并发访问量时,用信号量.不要把信号量当做普通的锁来 ...

  9. 转:Java中字符串split() 的使用方法.

    原文地址:https://blog.csdn.net/qq_27093465/article/details/54910323 挺有意思的一个问题 先看下面的方法,事先预测一下,经过split方法,按 ...

  10. flask之SQLAlchemy语法和原生mysql语法

    作为一个程序员,我想把有限的大脑空间留给有价值的知识,本人偏向于原生语法 特随笔于易查阅 # -*- encoding: utf-8 -*- from flask import Flask,rende ...