cpio 命令

news/2024/9/17 19:04:24/ 标签: 开发语言

前言

cpio(Copy In and Out)是一种在类 Unix 操作系统中处理归档文件的多功能工具。与 tar 不同,cpio 有其独特的优势和使用场景,特别是在与其他命令结合使用时。本文将带你了解 cpio 的基础知识、用法及实际示例。

什么是 cpio?

cpio 是一个命令行工具,用于创建或提取归档文件。它可以从标准输入读取文件列表,然后创建归档文件,或者从归档文件中提取文件。cpio 常用于备份、恢复、和软件安装等任务。

基本用法

cpio 有三种主要的操作模式:

  1. 复制出(Copy Out)模式:将文件写入归档文件。
  2. 复制入(Copy In)模式:从归档文件中提取文件。
  3. 传递(Pass-Through)模式:将文件从一个目录树复制到另一个目录树,同时保持文件属性。

复制出(创建归档文件)

find /path/to/source | cpio -o > archive.cpio

此命令使用 find 查找 /path/to/source 目录下的所有文件,并将其通过管道传递给 cpio,生成一个名为 archive.cpio 的归档文件。

cpio 的输入需要来自于标准输入或管道,并且输入的是文件名而不是文件内容,以下是几个示例:

nvidia@nvidia-desktop:~/tmp$ cat a.txt 
123
nvidia@nvidia-desktop:~/tmp$ cpio -o
a.txt
�q������f�a.txt123
�qTRAILER!!!1 block
nvidia@nvidia-desktop:~/tmp$ echo a.txt | cpio -o
�q������f�a.txt123
�qTRAILER!!!1 block
nvidia@nvidia-desktop:~/tmp$ ls | cpio -o
�q������f�a.txt123
�qTRAILER!!!1 block

cpio -o 直接将内容输出至标准输出,所以,一般我们会将输出重定向到文件

nvidia@nvidia-desktop:~/tmp$ find ./ > ../a.cpio
nvidia@nvidia-desktop:~/tmp$ echo a.txt | cpio -o > ../a.cpio 
1 block
nvidia@nvidia-desktop:~/tmp$ ls | cpio -o > ../a.cpio 
1 block

复制入(提取归档文件)

cpio -i < archive.cpio

此命令将提取 archive.cpio 归档文件中的所有文件到当前目录。

实例

nvidia@nvidia-desktop:~$ cpio -i < a.cpio 
1 block
nvidia@nvidia-desktop:~$ ls
a.cpio   a.txt
nvidia@nvidia-desktop:~$ cat a.txt 
123

传递模式

find /path/to/source -print | cpio -pdm /path/to/destination

此命令将 /path/to/source 目录下的所有文件复制到 /path/to/destination 目录,同时保留文件属性。

高级用法

压缩和解压

可以使用 gzip 或 bzip2 来压缩或解压 cpio 归档文件:

压缩

find /path/to/source -print | cpio -o | gzip > archive.cpio.gz

实例

nvidia@nvidia-desktop:~/tmp$ find ./ | cpio -o | gzip > a.cpio.gz
1 block

解压

gzip -d < archive.cpio.gz | cpio -i

实例

nvidia@nvidia-desktop:~$ gzip -d < tmp/a.cpio.gz | cpio -i
1 block
nvidia@nvidia-desktop:~$ ls
a.cpio     a.cpio.gz  a.txt

总结

cpio 是一个强大的工具,适用于多种文件处理任务。通过与其他命令结合使用,它能够实现更复杂的文件操作。无论是创建备份、恢复数据还是安装软件,cpio 都是一个值得掌握的工具。希望这篇文章能帮助你更好地理解和使用 cpio。


http://www.ppmy.cn/news/1507370.html

相关文章

重生之我 学习【数据结构之顺序表(SeqList)】

⭐⭐⭐ 新老博友们&#xff0c;感谢各位的阅读观看 期末考试&假期调整暂时的停更了两个多月 没有写博客为大家分享优质内容 还容各位博友多多的理解 美丽的八月重生之我归来 继续为大家分享内容 你我共同加油 一起努力 ⭐⭐⭐ 数据结构将以顺序表、链表、栈区、队列、二叉树…

获取客户端真实IP

出于安全考虑&#xff0c;近期在处理一个记录用户真实IP的需求。本来以为很简单&#xff0c;后来发现没有本来以为的简单。这里主要备忘下&#xff0c;如果服务器处于端口回流&#xff08;hairpin NAT&#xff09;,keepalived&#xff0c;nginx之后&#xff0c;如何取得客户端的…

nlohmann::json使用中文字符闪退,使用try-catch得到invalid UTF-8

nlohmann::json的字符串需要的编码是UTF-8&#xff0c;我使用wmi得到的信息字符串中的字符编码与其不相符&#xff0c;从而出现Exception。 参考文章链接&#xff1a; github中大佬的解决方法&#xff1a; nlohmann::json评论区 对于我使用的字符wchar_和函数WideCharToMultiBy…

C++设计模式(代理模式)

1. 电话虫 在海贼中&#xff0c;有一种神奇的通信工具叫做电话虫&#xff08;Den Den Mushi&#xff09;&#xff0c;外形如蜗牛&#xff0c;身上带有斑点或条纹或通体纯色&#xff0c;壳顶上有对讲机或按键&#xff0c;不接通时会睡觉&#xff0c;接通时会惊醒&#xff0c;并发…

LVS 调度器 nat和DR模式

lvs-nat 修改请求报文的目标IP,多目标IP的DNAT 配置网络 LVS主机 注意网卡的顺序 &#xff08;nat和主机模式&#xff09; [rootlvs ~]# cat /etc/NetworkManager/system-connections/ens160.nmconnection [connection] idens160 typeethernet interface-nameens160 ​ [ip…

Java封装原生ES

文章目录 &#x1f31e; Sun Frame&#xff1a;SpringBoot 的轻量级开发框架&#xff08;个人开源项目推荐&#xff09;&#x1f31f; 亮点功能&#x1f4e6; spring cloud模块概览常用工具 &#x1f517; 更多信息1.spring-data-es操作ES1.引入依赖2.application.yml配置uris3…

【Story】编译器的基础概念与类型分类

目录 编译器详解1. 编译器的工作流程1.1 词法分析&#xff08;Lexical Analysis&#xff09;词法分析的例子 1.2 语法分析&#xff08;Syntax Analysis&#xff09;语法分析的例子 1.3 语义分析&#xff08;Semantic Analysis&#xff09;语义分析的例子 1.4 中间代码生成&…

漏洞复现-Atlassian Confluence Data Center 与 Server 存在权限绕过漏洞 (CVE-2023-22518)

1.漏洞描述 Atlassian Confluence Server是澳大利亚Atlassian公司的一套具有企业知识管理功能&#xff0c;并支持用于构建企业WiKi的协同软件的服务器版本。 Atlassian Confluence Data Center 和 Confluence Server存在安全漏洞&#xff0c;该漏洞源于授权管理不当。 2.影响…

vscode 快速生成vue 格式

1.用快捷Ctrl Shift P唤出控制台 输入“Snippets”并选择 Snippets: Configure User Snippets 2.输入vue&#xff0c;选中vue.json vs code自动生成vue.json文件 3.在 vue.json 中添加模板 {"Print to console": {"prefix": "vue2","b…

大数据-69 Kafka 高级特性 物理存储 实机查看分析 日志存储一篇详解

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; 目前已经更新到了&#xff1a; Hadoop&#xff08;已更完&#xff09;HDFS&#xff08;已更完&#xff09;MapReduce&#xff08;已更完&am…

SQL Zoo 5.SUM and COUNT

以下题目均来自sql zoo 1.Show the total population of the world.&#xff08;显示世界总人口&#xff09; select sum(population) from world 2.List all the continents - just once each.(列出所有的大洲——每个只列出一个) select distinct(continent) from world…

前端面试题——RN篇

文章目录 前言1.RN和React有什么区别2.RN核心组件3.scrollView和FlatList区别scrollViewList item 4.RN应用导航5.虚拟dom作用是什么目的是什么工作原理 6.RN相对于原生的ios和Android有哪些优/劣势优势劣势 7.RN生命周期8.li列表中有3条数据&#xff0c;删除第二条会发生什么9…

ES6模块化简明笔记

1、什么是模块化 详见看上一篇笔记CommonJs模块化简明笔记 2、为什么需要模块化 详见看上一篇笔记CommonJs模块化简明笔记 3、导入和导出的概念 详见看上一篇笔记CommonJs模块化简明笔记 4、模块导出&#xff08;暴露&#xff09; 4.1 导出&#xff08;暴露&#xff09;方式1&…

基于粒子群优化GRU神经网络的多输入回归分析,基于粒子群优化GRU网络多输入回归分析,基于粒子群优化GRU神经网络

目录 背影 摘要 LSTM的基本定义 LSTM实现的步骤 gru的原理 粒子群算法原理 粒子群优化GRU神经网络的多输入回归分析 结果分析 展望 参考论文 背影 传统的方法回归分析容易陷入局部最优准确率低,为提高精度,本文用粒子群优化GRU神经网络的多输入回归分析 摘要 LSTM原理,…

攻防世界-web-ctf-upload

题目场景 查看源码 毫无有效的数据 官方WriteUp 本题需要利用文件上传漏洞点&#xff0c;通过绕过服务器的安全防护&#xff0c;达到getshell的目的 本题的主要考点为利用fastcgi的.user.ini特性进行任意命令执行 这里需要绕过的点如下 检查文件内容是否有php字符串 检查…

Less 教程:从入门到精通

Less 教程&#xff1a;从入门到精通 1. 引言 Less 是一种流行的动态样式表语言&#xff0c;它扩展了 CSS 的功能&#xff0c;使其更加强大和灵活。通过本教程&#xff0c;我们将深入探讨 Less 的基本概念、特性以及如何在项目中实际应用它。 2. Less 的基本概念 2.1 变量 …

vue3父组件向子组件传参的具体写法

在Vue 3中&#xff0c;父组件向子组件传参&#xff08;也称作传递props&#xff09;是一种非常基本的通信方式。下面我将详细解释如何在Vue 3中实现这一功能。 1. 定义子组件并接收props 首先&#xff0c;你需要在子组件中定义你想要接收的props。这通过在组件的props选项中完…

通过java.netHttpURLConnection类实现java发送http请求

import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStream; import java.net.HttpURLConnection; import java.net.URL; public static String postForBody(String param) { try { URL url new URL(“https://usapp-open.ulifecam.com”)…

axios中的baseURL与跨域问题

axios中的baseURL 01. baseURL与跨域02. axios的baseurl为相对地址03. axios的baseURL是使用绝对路径还是相对路径04. API 请求跨域05. 生产环境代理问题我理解的baseURL 01. baseURL与跨域 三种模式配置&#xff1a; 开发环境 .env.development测试环境 .env.production生产…

游戏在抖音只有一个答案,都选C

经过2023年至2024年间多个案例的曝光&#xff0c;游戏开发商与硬核联盟之间的分歧已不再是秘密。而与此同时&#xff0c;抖音游戏发行的影响力也日益凸显&#xff0c;开始被市场所看重。 抖音能否成为取代硬核联盟的下一个渠道窗口&#xff1f; 从产品角度分析&#xff0c;抖…