网站企业推广方案,住房和城乡建设局是干什么的,阿里云 企业 网站,龙岩网站建设大概费用在
Linux shell编程学习笔记78#xff1a;cpio命令——文件和目录归档工具#xff08;上#xff09;-CSDN博客https://blog.csdn.net/Purpleendurer/article/details/142095476?spm1001.2014.3001.5501中#xff0c;我们研究了 cpio命令 的功能、格式、选项说明 以及 cpi… 在
Linux shell编程学习笔记78cpio命令——文件和目录归档工具上-CSDN博客https://blog.csdn.net/Purpleendurer/article/details/142095476?spm1001.2014.3001.5501中我们研究了 cpio命令 的功能、格式、选项说明 以及 cpio命令的三种模式现在我们来通过一些实例来实践一下。
1 应用实例
1.1 创建演示文件和目录 我们使用 echo 命令和输出重定向创建文件f1 和 f2使用mkdir命令创建目录d1
[purpleendurer bash ~] echo f1 f1
[purpleendurer bash ~] echo f2 f2
[purpleendurer bash ~] mkdir d1
[purpleendurer bash ~] ls
Code d1 f1 f2
[purpleendurer bash ~] 1.2 创建归档文件
1.2.1 将当前目录的内容归档
使用命令 ls | cpio -o p.cpio 来将当前目录的内容归档到文件p.cpio。 命令选项说明 -o或--create 创建包 (运行 copy-out 模式) [purpleendurer bash ~] ls
Code d1 f1 f2
[purpleendurer bash ~] ls | cpio -o p.cpio
1 block
[purpleendurer bash ~] ls
Code d1 f1 f2 p.cpio
[purpleendurer bash ~] 如果我们想在归档时看到已归档的文件名称可以使用-v 或 --verbose 选项即 ls | cpio -ov p.cpio [purpleendurer bash ~] ls
Code d1 f1 f2
[purpleendurer bash ~] ls | cpio -ov p.cpio
Code
d1
f1
f2
p.cpio
1 block
[purpleendurer bash ~] ls
Code d1 f1 f2 p.cpio
[purpleendurer bash ~] 1.2.2 将以字母f开头的文件归档
我们可以使用命令 ls f* | cpio -ov f.cpio 或 find f* | cpio -ov f.cpio 将以字母f开头的文件归档。
[purpleendurer bash ~] find f*
f1
f2
[purpleendurer bash ~] find f* | cpio -ov f.cpio
f1
f2
f.cpio
1 block
[purpleendurer bash ~] ls
Code d1 f1 f2 f.cpio p.cpio
[purpleendurer bash ~] 1.2.3 将标准输入指定的文件归档 命令格式 cpio -o 归档文件 注意输入所有要归档文件名后要按CtrlD结束。
例如从标准输入指定将文件f1和目录d1归档到文件k.cpio [purpleendurer bash ~] ls
Code d1 f1 f2
[purpleendurer bash ~] cpio -o k.cpio
f1
d1
1 block
[purpleendurer bash ~] cpio -t k.cpio
f1
d1
1 block
[purpleendurer bash ~]
1.2.4 使用tar格式归档
cpio命令支持tar格式的归档文件我们可以使用 -H选项来生成tar格式的归档文件。
例如将当前目录下 f开头的文件和目录以tar格式归档到d.tar 的命令是 ls f* | cpio -ov -H tar f.tar 选项说明 -o或--create创建包 (运行 copy-out 模式)-v 或 --verbose详细列出已处理的文件-t, --list将输入内容以列表形式打印 [purpleendurer bash ~] ls f*
f1 f2
[purpleendurer bash ~] ls f* | cpio -ov -H tar f.tar
f1
f2
6 blocks
[purpleendurer bash ~] cpio -t f.tar
f1
f2
5 blocks
[purpleendurer bash ~] 1.2 查看归档文件的内容
我们可以使用命令 cpio -t 归档文件 或 cpio --list 归档文件 来查看归档文件的内容。
选项说明 -t, --list将输入内容以列表形式打印 例如查看归档文件 f.cpio 和 p.cpio 的内容。
[purpleendurer bash ~] ls
Code d1 f1 f2 f.cpio p.cpio
[purpleendurer bash ~] cpio -t f.cpio
f1
f2
f.cpio
1 block
[purpleendurer bash ~] cpio -t p.cpio
Code
d1
f1
f2
p.cpio
1 block
[purpleendurer bash ~] 1.3 向归档文件追加文件
例如将文件f2追加到归档文件k.cpio文件的命令是 ls f2 | cpio -ovA -O k.cpio 命令选项说明 -o 或 --create创建包 (运行 copy-out 模式)-v 或 --verbose详细列出已处理的文件-O使用包文件名而不是标准输出 [purpleendurer bash ~] cpio -t k.cpio
f1
d1
1 block
[purpleendurer bash ~] ls f2 | cpio -ovA -O k.cpio
f2
1 block
[purpleendurer bash ~] cpio -t k.cpio
f1
d1
f2
1 block
[purpleendurer bash ~] 注意向归档文件追加文件不能使用输出定向追加 来实现
例如我们想用输出重定向追加 来将目录d1追加到归档文件k.cpio
[purpleendurer bash ~] rm k.cpio
[purpleendurer bash ~] ls f1 | cpio -o k.cpio
1 block
[purpleendurer bash ~] ls d1 | cpio -o k.cpio
1 block
[purpleendurer bash ~] cpio -t k.cpio
f1
1 block
[purpleendurer bash ~] 命令执行的结果是d1未能追加到归档文件k.cpio。
1.4 从归档文件进行还原
1.4.1 从归档文件进行还原并列出详细信息
例如我先使用命令 ls f? | cpio -ov f.cpio 将当前目录里以f开头文件名长度为2个字符的文件归档到文件f.cpio。
然后我们使用命令 rm f? 删除当前目录下以f开头文件名长度为2个字符的文件。
接着我便使用命令 cpio -iv f.cpio 来还原。
选项说明 -i, --extract从包中提取文件 (运行 copy-in 模式)-v 或 --verbose详细列出已处理的文件 [purpleendurer bash ~] ls
Code d1 f1 f2
[purpleendurer bash ~] ls f? | cpio -ov f.cpio
f1
f2
1 block
[purpleendurer bash ~] cpio -t f.cpio
f1
f2
1 block
[purpleendurer bash ~] rm f?
[purpleendurer bash ~] ls
Code d1 f.cpio
[purpleendurer bash ~] cpio -iv f.cpio
f1
f2
1 block
[purpleendurer bash ~] ls
Code d1 f1 f2 f.cpio
[purpleendurer bash ~] 如果我们不想使用输入重定向来指定所用的归档文件f.cpio还可以使用-I 选项来指定归档文件f.cpio。
命令 cpio -iv -I f.cpio 选项说明 -i, --extract从包中提取文件 (运行 copy-in 模式)-v 或 --verbose详细列出已处理的文件-I, --fileARCHIVE从ARCHIVE文件读取归档文件而不是标准输入 [purpleendurer bash ~] cpio -iv -I f.cpio
f1
f2
1 block
[purpleendurer bash ~] 1.4.2 强制从归档文件中还原
所谓强制就是还原时直接覆盖原有的文件。
例如我们先使用命令 ls f? | cpio -ov -O f.cpio 将当前目录里以f开头文件名长度为2个字符的文件归档到文件f.cpio。
然后强制从归档文件f.cpio还原文件命令是 cpio -ivu -I f.cpio 选项说明 -i, --extract从包中提取文件 (运行 copy-in 模式)-v 或 --verbose详细列出已处理的文件-u, --unconditional无条件覆盖所有文件-I, --fileARCHIVE从ARCHIVE文件读取归档文件而不是标准输入 [purpleendurer bash ~] ls
Code d1 f1 f2
[purpleendurer bash ~] ls f? | cpio -ov -O f.cpio
f1
f2
1 block
[purpleendurer bash ~] cpio -ivu -I f.cpio
f1
f2
1 block
[purpleendurer bash ~] 1.4.3 从归档文件进行还原时进行反向匹配指定不解压的文件
例如我们先使用命令 ls f? | cpio -ov -O f.cpio 将当前目录里以f开头文件名长度为2个字符的文件归档到文件f.cpio。
然后我们使用命令 rm f? 删除当前目录下以f开头文件名长度为2个字符的文件。
接着我们使用命令 cpio -iv -I f.cpio -f f1 从归档文件f.cpio还原文件名不是f1的文件。
选项说明 -i, --extract从包中提取文件 (运行 copy-in 模式)-v 或 --verbose详细列出已处理的文件-I, --fileARCHIVE从ARCHIVE文件读取归档文件而不是标准输入-f, --nonmatching仅拷贝不匹配任意给定的模式的文件 [purpleendurer bash ~] ls
Code d1 f1 f2
[purpleendurer bash ~] ls f? | cpio -ov -O f.cpio
f1
f2
1 block
[purpleendurer bash ~] rm f?
[purpleendurer bash ~] ls
Code d1 f.cpio
[purpleendurer bash ~] cpio -iv -I f.cpio -f f1
f2
1 block
[purpleendurer bash ~] ls
Code d1 f2 f.cpio
[purpleendurer bash ~]