标签:rom 打包压缩 gunzip etc txt 显示文件 linu 文件 文件传输
压缩文件会减少文件的大小,对于传输效率会大大提高,而文本类型的压缩比是比较高的,另外单个小文件传输速率会比较慢,而单个文件传输效率会比较高。
注意:一般压缩工具解压缩文件时是根据文件后缀进行的,因此需要严格指定压缩文件的后缀。
下面介绍几种常用的压缩工具。
compress:用于压缩文件
unconpress:用于解压缩文件
zcat:不解压查看压缩文件内容
compress压缩的文件的后缀名为.Z
conpress的常用选项如下:
选项 | 说明 |
---|---|
-d | 解压缩文件 |
-c | 结果输出至标准输出,不删除原文件,默认会把原文件删除 |
-v | 显示过程 |
#安装软件包ncompress
[root@xuzhichao test2]# yum install ncompress
#示例一:使用compress对文件进行压缩,压缩后原文件默认删除,压缩文件以原文件名加上.Z后缀名组成。
[root@xuzhichao test2]# ll
total 236760
-rw-r--r-- 1 root root 242439168 May 25 21:19 file
[root@xuzhichao test2]# compress file
[root@xuzhichao test2]# ll
total 40
-rw-r--r-- 1 root root 37451 May 25 21:19 file.Z
#示例二:使用unconpress或compress -d选项对文件解压缩
[root@xuzhichao test2]# compress -d file.Z
#[root@xuzhichao test2]# uncompress file.Z
[root@xuzhichao test2]# ll
total 236760
-rw-r--r-- 1 root root 242439168 May 25 21:19 file
#示例三:使用compress -c选项压缩时保留原文件,需要使用重定向把屏幕的输出指定到文件中。
[root@xuzhichao test2]# ll
total 236760
-rw-r--r-- 1 root root 242439168 May 25 21:19 file
[root@xuzhichao test2]# gzip -c file > file.Z
[root@xuzhichao test2]# ll
total 236992
-rw-r--r-- 1 root root 242439168 May 25 21:19 file
-rw-r--r-- 1 root root 235312 May 25 21:21 file.Z
#示例四:zcat查看压缩文件内容
[root@xuzhichao test2]# cp /etc/passwd .
[root@xuzhichao test2]# compress passwd
[root@xuzhichao test2]# zcat passwd.Z
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
......
gzip命令比compress应用更为广泛。
gzip:用于压缩文件
gunzip:用于解压缩文件
zcat:不解压查看压缩文件内容
gzip压缩的文件后缀名为.gz
gzip命令的常用选项如下:
选项 | 说明 |
---|---|
-d | 解压缩文件 |
-c | 结果输出至标准输出,不删除原文件,默认会把原文件删除 |
-v | 显示过程 |
-# | 1-9,指定压缩比,值越大,压缩比越大,但是压缩速度越慢,默认为6级别 |
#示例一:使用gzip对文件进行压缩,压缩后原文件默认删除,压缩文件以原文件名加上.gz后缀名组成。
[root@xuzhichao test2]# ll
total 236992
-rw-r--r-- 1 root root 242439168 May 25 21:19 file
-rw-r--r-- 1 root root 235312 May 25 21:21 file.Z
[root@xuzhichao test2]# gzip file
[root@xuzhichao test2]# ll
total 464
-rw-r--r-- 1 root root 235312 May 25 21:21 file.Z
-rw-r--r-- 1 root root 235312 May 25 21:19 file.gz
#示例二:使用gzip -d选项或gunzip命令对文件解压缩,默认会删除压缩文件
[root@xuzhichao test2]# gzip -d file.gz
[root@xuzhichao test2]# ll
total 236992
-rw-r--r-- 1 root root 242439168 May 25 21:19 file
-rw-r--r-- 1 root root 235312 May 25 21:21 file.Z
#示例三:默认gzip压缩文件会删除原文件,使用-c选项可以保留原文件
[root@xuzhichao test2]# ll
total 236992
-rw-r--r-- 1 root root 242439168 May 25 21:19 file
-rw-r--r-- 1 root root 235312 May 25 21:21 file.Z
[root@xuzhichao test2]# gzip -c file > file.gz
[root@xuzhichao test2]# ll
total 237224
-rw-r--r-- 1 root root 242439168 May 25 21:19 file
-rw-r--r-- 1 root root 235312 May 25 21:21 file.Z
-rw-r--r-- 1 root root 235302 May 25 21:27 file.gz
#示例四:zcat也可以查看gzip压缩的文件,同时可以使用zcat命令解压缩文件同时保留压缩文件
[root@xuzhichao test2]# zcat file.gz > file
[root@xuzhichao test2]# ll
total 237224
-rw-r--r-- 1 root root 242439168 May 25 21:27 file
-rw-r--r-- 1 root root 235312 May 25 21:21 file.Z
-rw-r--r-- 1 root root 235302 May 25 21:27 file.gz
#示例五:gzip指定压缩级别,默认为6级别
[root@xuzhichao test2]# ll
total 473984
-rw-r--r-- 1 root root 242439168 May 25 21:27 file
-rw-r--r-- 1 root root 235312 May 25 21:21 file.Z
-rw-r--r-- 1 root root 235302 May 25 21:27 file.gz
-rw-r--r-- 1 root root 242439168 May 25 21:28 file2
[root@xuzhichao test2]# gzip -9 file2
[root@xuzhichao test2]# ll
total 237456
-rw-r--r-- 1 root root 242439168 May 25 21:27 file
-rw-r--r-- 1 root root 235312 May 25 21:21 file.Z
-rw-r--r-- 1 root root 235312 May 25 21:27 file.gz
-rw-r--r-- 1 root root 235298 May 25 21:28 file2.gz
#PS:实际测试调整压缩比压缩文件并不理想,不建议修改。
#示例六:gzip可以配合管道,实现对管道传过来的输入信息进行压缩
[root@xuzhichao test2]# dmesg > dmesg.log
[root@xuzhichao test2]# dmesg | gzip > dmesg.log.gz
[root@xuzhichao test2]# ll dmesg.log*
-rw-r--r-- 1 root root 125129 May 25 21:31 dmesg.log
-rw-r--r-- 1 root root 23026 May 25 21:32 dmesg.log.gz
bzip2比前两个压缩命令就有更好的压缩比。
bzip2:用于压缩文件
bunzip2:用于解压缩文件
bzcat:不解压查看bzip2压缩文件内容
bzip2压缩的文件的后缀名是.bz2
bzip2命令的常用选项如下:
选项 | 说明 |
---|---|
-k | 保留原文件,默认bzip2压缩后会删除原文件 |
-d | 接压缩文件 |
-# | 1-9,指定压缩比,值越大,压缩比越大,但是压缩速度越慢,默认为9级别 |
#示例一:使用bzip2压缩文件,压缩比较高
[root@xuzhichao test2]# ll
total 237456
-rw-r--r-- 1 root root 242439168 May 25 21:27 file
-rw-r--r-- 1 root root 235312 May 25 21:21 file.Z
-rw-r--r-- 1 root root 235312 May 25 21:27 file.gz
[root@xuzhichao test2]# bzip2 -k file
[root@xuzhichao test2]# ll
total 237228
-rw-r--r-- 1 root root 242439168 May 25 21:27 file
-rw-r--r-- 1 root root 235312 May 25 21:21 file.Z
-rw-r--r-- 1 root root 209 May 25 21:27 file.bz2
-rw-r--r-- 1 root root 235312 May 25 21:27 file.gz
#示例二:解压缩文件
[root@xuzhichao test2]# bzip2 -d file.bz2
xz是一个较新的压缩工具,也具有比较高的压缩比。
xz:用于压缩文件
unxz:用于解压缩文件
xzcat:不解压查看xz压缩文件内容
xz压缩的文件的后缀名是.xz
xz命令的常用选项如下:
选项 | 说明 |
---|---|
-k | 保留原文件,默认xz压缩后会删除原文件 |
-d | 接压缩文件 |
-# | 1-9,指定压缩比,值越大,压缩比越大,但是压缩速度越慢,默认为9级别 |
#示例一:使用xz压缩文件
#[root@xuzhichao test2]# ll
total 237228
-rw-r--r-- 1 root root 242439168 May 25 21:27 file
-rw-r--r-- 1 root root 235312 May 25 21:21 file.Z
-rw-r--r-- 1 root root 209 May 25 21:27 file.bz2
-rw-r--r-- 1 root root 235312 May 25 21:27 file.gz
[root@xuzhichao test2]# xz -k file
[root@xuzhichao test2]# ll
total 237264
-rw-r--r-- 1 root root 242439168 May 25 21:27 file
-rw-r--r-- 1 root root 235312 May 25 21:21 file.Z
-rw-r--r-- 1 root root 209 May 25 21:27 file.bz2
-rw-r--r-- 1 root root 235312 May 25 21:27 file.gz
-rw-r--r-- 1 root root 35396 May 25 21:27 file.xz
#示例二:解压缩文件
[root@xuzhichao test2]# xz -d file.xz
zip:用于对文件或目录进行压缩,以上压缩工具仅支持对文件进行压缩,不支持对目录进行压缩
unzip:用于文件或目录进行解压缩
使用zip命令压缩的文件后缀名为.zip
zip的命令使用格式为:
zip [options] FILE.ZIP FILE
说明:
FILE:为需要压缩的文件或目录
FILE.ZIP:为压缩的文件名
zip主要参数如下:
选项 | 说明 |
---|---|
-r | 用于对目录文件进行压缩 |
-T | 检查zip压缩包是否是完整的 |
unzip的主要参数如下:
选项 | 说明 |
---|---|
-l或-t | 不解压查看压缩包的内容 |
-d | 指定zip压缩包的内容解压到何处 |
-p | 内容输出到屏幕 |
zip命令的使用示例如下:
#安装zip和unzip工具包
[root@xuzhichao test2]# yum install zip unzip
#示例一:使用zip压缩文件,默认不会删除原文件
[root@xuzhichao test2]# ll
total 237264
-rw-r--r-- 1 root root 242439168 May 25 21:27 file
-rw-r--r-- 1 root root 235312 May 25 21:21 file.Z
-rw-r--r-- 1 root root 209 May 25 21:27 file.bz2
-rw-r--r-- 1 root root 235312 May 25 21:27 file.gz
-rw-r--r-- 1 root root 35396 May 25 21:27 file.xz
[root@xuzhichao test2]# zip file.zip file
adding: file (deflated 100%)
[root@xuzhichao test2]# ll
total 237496
-rw-r--r-- 1 root root 242439168 May 25 21:27 file
-rw-r--r-- 1 root root 235312 May 25 21:21 file.Z
-rw-r--r-- 1 root root 209 May 25 21:27 file.bz2
-rw-r--r-- 1 root root 235312 May 25 21:27 file.gz
-rw-r--r-- 1 root root 35396 May 25 21:27 file.xz
-rw-r--r-- 1 root root 235447 May 26 15:25 file.zip
#示例二:使用zip压缩目录,使用-r参数
root@xuzhichao data]# zip -r test.zip test2
adding: test2/ (stored 0%)
adding: test2/file.Z (stored 0%)
adding: test2/file (deflated 100%)
adding: test2/file.gz (deflated 100%)
adding: test2/file.bz2 (deflated 63%)
adding: test2/file.xz (deflated 98%)
adding: test2/file.zip (stored 0%)
[root@xuzhichao data]# ll
-rw-r--r-- 1 root root 708565 May 26 15:26 test.zip
#示例三:解压缩文件,若存在同名文件,会提示是否覆盖
[root@xuzhichao test2]# unzip file.zip
Archive: file.zip
replace file? [y]es, [n]o, [A]ll, [N]one, [r]ename: r
new name: file2
inflating: file2
#示例四:解压目录,会解压到文件的原始位置,并提示是否覆盖
[root@xuzhichao data]# unzip test.zip
Archive: test.zip
replace test2/file.Z? [y]es, [n]o, [A]ll, [N]one, [r]ename: A
extracting: test2/file.Z
inflating: test2/file
inflating: test2/file.gz
inflating: test2/file.bz2
inflating: test2/file.xz
extracting: test2/file.zip
#示例五:检查zip压缩包是否是完整的
[root@xuzhichao data]# zip -T test.zip
test of test.zip OK
#示例六:使用-d选项指定解压缩位置
[root@xuzhichao data]# unzip test.zip -d test3
Archive: test.zip
creating: test3/test2/
extracting: test3/test2/file.Z
inflating: test3/test2/file
inflating: test3/test2/file.gz
inflating: test3/test2/file.bz2
inflating: test3/test2/file.xz
extracting: test3/test2/file.zip
[root@xuzhichao data]# ll test3/
total 0
drwxr-xr-x 2 root root 94 May 26 15:25 test2
#示例七:查看压缩文件内容,使用unzip -l参数
[root@xuzhichao data]# unzip -l test.zip
Archive: test.zip
Length Date Time Name
--------- ---------- ----- ----
0 05-26-2021 15:25 test2/
235312 05-25-2021 21:21 test2/file.Z
242439168 05-25-2021 21:27 test2/file
235312 05-25-2021 21:27 test2/file.gz
209 05-25-2021 21:27 test2/file.bz2
35396 05-25-2021 21:27 test2/file.xz
235447 05-26-2021 15:25 test2/file.zip
--------- -------
243180844 7 files
[root@xuzhichao data]# unzip -l /data/test2/file.zip
Archive: /data/test2/file.zip
Length Date Time Name
--------- ---------- ----- ----
242439168 05-25-2021 21:27 file
--------- -------
242439168 1 file
#示例八:配合管道实现对输入重定向的内容进行压缩
[root@xuzhichao data]# cat /var/log/messages | zip messages.zip -
adding: - (deflated 86%)
[root@xuzhichao data]# ll messages.zip
-rw-r--r-- 1 root root 46728 May 26 16:11 messages.zip
#示例九:-p配合重定向进行解压
[root@xuzhichao data]# unzip -p test2/file.zip > file
tar是linux中常用的一个打包工具,可以对文件和目录进行打包,还可以配合压缩工具同时进行打包压缩。
tar命令的语法如下:
tar [OPTION...] [FILE]...
tar命令的常用选项如下:
选项 | 说明 |
---|---|
-c | 创建归档文件 |
-t | 查看归档文件内容 |
-x | 将归档文件解包 |
-f | 指定归档文件 |
-p | 保留文件的原始权限,多用于备份 |
-C | 指定归档文件解包目录 |
-z | 使用gzip格式压缩 |
-j | 使用bzip2格式压缩 |
-J | 使用xz格式压缩 |
--exclude | 排除文件 |
-T | 指定需要打包的文件列表 |
-X | 指定要排除打包的文件列表 |
-v | 显示过程 |
-r | 向归档文件中追加文件,注意归档为文件不能被压缩,否则无法追加文件 |
-P | (大写P)可以保留绝对目录压缩 |
tar命令的常用组合选项如下:
组合选项 | 说明 |
---|---|
czvf | 使用gzip格式打包压缩 |
cjvf | 使用bzip2格式打包压缩文件 |
cJVF | 使用xz格式打包压缩 |
tf | 查看压缩包内容 |
xvf | 自动选择压缩格式对归档文件解包 |
tar命令的常用后缀名如下:
后缀名 | 说明 |
---|---|
tar.gz | 使用gzip格式压缩的文件 |
tar.bz2 | 使用bzip2格式压缩的文件 |
tar.xz | 使用xz格式压缩的文件 |
tar命令的常见用法示例如下:
#tar包安装
[root@xuzhichao data]# yum install tar
#示例一:使用gzip,bzip2,xz分别压缩打包文件
[root@xuzhichao data]# tar czvf repo.tar.gz /etc/yum.repos.d/
tar: Removing leading `/‘ from member names
/etc/yum.repos.d/
/etc/yum.repos.d/backup/
/etc/yum.repos.d/backup/CentOS-Base.repo
/etc/yum.repos.d/backup/CentOS-CR.repo
/etc/yum.repos.d/backup/CentOS-Debuginfo.repo
/etc/yum.repos.d/backup/CentOS-fasttrack.repo
/etc/yum.repos.d/backup/CentOS-Media.repo
/etc/yum.repos.d/backup/CentOS-Sources.repo
/etc/yum.repos.d/backup/CentOS-Vault.repo
/etc/yum.repos.d/backup/CentOS-x86_64-kernel.repo
/etc/yum.repos.d/base.repo
[root@xuzhichao data]# tar cjvf repo.tar.bz2 /etc/yum.repos.d/
tar: Removing leading `/‘ from member names
/etc/yum.repos.d/
/etc/yum.repos.d/backup/
/etc/yum.repos.d/backup/CentOS-Base.repo
/etc/yum.repos.d/backup/CentOS-CR.repo
/etc/yum.repos.d/backup/CentOS-Debuginfo.repo
/etc/yum.repos.d/backup/CentOS-fasttrack.repo
/etc/yum.repos.d/backup/CentOS-Media.repo
/etc/yum.repos.d/backup/CentOS-Sources.repo
/etc/yum.repos.d/backup/CentOS-Vault.repo
/etc/yum.repos.d/backup/CentOS-x86_64-kernel.repo
/etc/yum.repos.d/base.repo
[root@xuzhichao data]# tar cJvf repo.tar.xz /etc/yum.repos.d/
tar: Removing leading `/‘ from member names
/etc/yum.repos.d/
/etc/yum.repos.d/backup/
/etc/yum.repos.d/backup/CentOS-Base.repo
/etc/yum.repos.d/backup/CentOS-CR.repo
/etc/yum.repos.d/backup/CentOS-Debuginfo.repo
/etc/yum.repos.d/backup/CentOS-fasttrack.repo
/etc/yum.repos.d/backup/CentOS-Media.repo
/etc/yum.repos.d/backup/CentOS-Sources.repo
/etc/yum.repos.d/backup/CentOS-Vault.repo
/etc/yum.repos.d/backup/CentOS-x86_64-kernel.repo
/etc/yum.repos.d/base.repo
[root@xuzhichao data]# ll repo.tar.*
-rw-r--r-- 1 root root 2626 May 26 17:22 repo.tar.bz2
-rw-r--r-- 1 root root 2780 May 26 17:19 repo.tar.gz
-rw-r--r-- 1 root root 2532 May 26 17:22 repo.tar.xz
#示例二:预览打包文件内容,使用tvf选项,注意v选项会以长格式显示文件列表
[root@xuzhichao data]# tar tvf repo.tar.bz2
drwxr-xr-x root/root 0 2020-11-03 17:48 etc/yum.repos.d/
drwxr-xr-x root/root 0 2020-11-03 17:48 etc/yum.repos.d/backup/
-rw-r--r-- root/root 1664 2020-04-08 06:01 etc/yum.repos.d/backup/CentOS-Base.repo
-rw-r--r-- root/root 1309 2020-04-08 06:01 etc/yum.repos.d/backup/CentOS-CR.repo
-rw-r--r-- root/root 649 2020-04-08 06:01 etc/yum.repos.d/backup/CentOS-Debuginfo.repo
-rw-r--r-- root/root 314 2020-04-08 06:01 etc/yum.repos.d/backup/CentOS-fasttrack.repo
-rw-r--r-- root/root 630 2020-04-08 06:01 etc/yum.repos.d/backup/CentOS-Media.repo
-rw-r--r-- root/root 1331 2020-04-08 06:01 etc/yum.repos.d/backup/CentOS-Sources.repo
-rw-r--r-- root/root 7577 2020-04-08 06:01 etc/yum.repos.d/backup/CentOS-Vault.repo
-rw-r--r-- root/root 616 2020-04-08 06:01 etc/yum.repos.d/backup/CentOS-x86_64-kernel.repo
-rw-r--r-- root/root 131 2020-11-03 17:48 etc/yum.repos.d/base.repo
[root@xuzhichao data]# tar tf repo.tar.bz2
etc/yum.repos.d/
etc/yum.repos.d/backup/
etc/yum.repos.d/backup/CentOS-Base.repo
etc/yum.repos.d/backup/CentOS-CR.repo
etc/yum.repos.d/backup/CentOS-Debuginfo.repo
etc/yum.repos.d/backup/CentOS-fasttrack.repo
etc/yum.repos.d/backup/CentOS-Media.repo
etc/yum.repos.d/backup/CentOS-Sources.repo
etc/yum.repos.d/backup/CentOS-Vault.repo
etc/yum.repos.d/backup/CentOS-x86_64-kernel.repo
etc/yum.repos.d/base.repo
#示例三:tar解归档文件,默认解压缩到当前目录,使用-C选项解压到指定目录
#xf可以自动选择压缩算法,无需指定。
[root@xuzhichao data]# tar xvf repo.tar.bz2 -C test3
etc/yum.repos.d/
etc/yum.repos.d/backup/
etc/yum.repos.d/backup/CentOS-Base.repo
etc/yum.repos.d/backup/CentOS-CR.repo
etc/yum.repos.d/backup/CentOS-Debuginfo.repo
etc/yum.repos.d/backup/CentOS-fasttrack.repo
etc/yum.repos.d/backup/CentOS-Media.repo
etc/yum.repos.d/backup/CentOS-Sources.repo
etc/yum.repos.d/backup/CentOS-Vault.repo
etc/yum.repos.d/backup/CentOS-x86_64-kernel.repo
etc/yum.repos.d/base.repo
[root@xuzhichao data]# tree test3/etc/
test3/etc/
`-- yum.repos.d
|-- backup
| |-- CentOS-Base.repo
| |-- CentOS-CR.repo
| |-- CentOS-Debuginfo.repo
| |-- CentOS-Media.repo
| |-- CentOS-Sources.repo
| |-- CentOS-Vault.repo
| |-- CentOS-fasttrack.repo
| `-- CentOS-x86_64-kernel.repo
`-- base.repo
#示例四:如果需要向归档文件追加文件,使用-r选项
[root@xuzhichao data]# tar cf repo.tar /etc/yum.repos.d/
tar: Removing leading `/‘ from member names
[root@xuzhichao data]# tar rf repo.tar /boot/
tar: Removing leading `/‘ from member names
注意:使用tar压缩后,会提示“tar: Removing leading `/‘ from member names”。
意思是移除每个文件名的根目录,这样主要是为了安全,例如使用tar备份/etc目录到root目录下的etc.tar.bz文件,如果要解归档文件,在tar归档文件中所记录的文件名就是解压缩后的实际档名,如果没有拿掉目录,解压缩后档名就是绝对路径,数据会覆盖到到/etc/xxx去,原本的/etc/下的数据就会丢失。拿掉了根目录,假设将备份的数据在/tmp解开,那么解压缩的档名就会变成/tmp/etc/xxx。-P选项会不移除根目录。
当需要打包文件夹内的部分内容,或需要排除,增加很多文件时,可以将需要打包和需要排除的文件路径分别写入一个路径文件,利用-T和-X读取路径文件,进行打包。
#示例:打包/etc和/boot目录,除了exlist中的文件。
[root@xuzhichao test1]# cat list.txt
/etc
/boot
[root@xuzhichao test1]# cat exlist.txt
/etc/fstab
/etc/passwd
/etc/hosts
/boot/config-3.10.0-1127.el7.x86_64
/boot/grub
[root@xuzhichao test1]# tar -cvpjf backup.tar.bz -T list.txt -X exlist.txt
[root@xuzhichao test1]# ll
total 146168
-rw-r--r-- 1 root root 149665940 May 26 23:07 backup.tar.bz
cpio命令和tar命令一样,可以打包文件或目录,也可以对打包文件进行解包,主要解包以cpio和tar结尾的文件。
cpio的主要语法如下:
cpio [OPTION...] [destination-directory]
cpio的常用选项如下:
选项 | 说明 |
---|---|
-o | 归档模式,cpio将向归档文件中拷贝文件 |
-i | 提取模式,cpio从归档文件中提取文件,或列出归档文件中的文件列表 |
-t | 预览,列出标准输入的归档文件中的文件列表 |
-v | 显示过程 |
-u | 解包时或文件名冲突会覆盖原始文件 |
cpio的常用组合选项如下:
组合选项 | 说明 |
---|---|
-ov | 打包文件,一般通过ls或find的标准输出获取打包文件 |
-tv | 查看打包文件 |
-idv | 解包文件 |
注意:只有在当前目录下找到文件并且执行cpio,cpio中的内容是当前路径,否则是绝对路径,解包时会以绝对路径解包。
cpio的使用示例如下:
#cpio安装包
[root@xuzhichao test1]# rpm -q cpio
cpio-2.11-27.el7.x86_64
#示例一:打包文件
[root@xuzhichao test1]# find /etc/ -name "*.conf" | cpio -ov > conf.cpio
#示例二:查看打包文件
[root@xuzhichao test1]# cpio -tv < conf.cpio
-rw-r--r-- 1 root root 53 May 26 22:58 /etc/resolv.conf
......
#示例三:解打包文件,默认会解包到原始文件下,解包时若文件冲突,默认不会覆盖原文件,加上-u选项会覆盖原文件
[root@xuzhichao test1]# cpio -idv < conf.cpio
cpio: /etc/resolv.conf not created: newer or same age version exists
/etc/resolv.conf
......
#示例四:/boot/initramfs-3.10.0-1127.el7.x86_64.img文件即为cpio打包文件
[root@xuzhichao boot]# file initramfs-3.10.0-1127.el7.x86_64.img
initramfs-3.10.0-1127.el7.x86_64.img: ASCII cpio archive (SVR4 with no CRC)
[root@xuzhichao boot]# cpio -tv < initramfs-3.10.0-1127.el7.x86_64.img
drwxr-xr-x 3 root root 0 Nov 4 2020 .
drwxr-xr-x 3 root root 0 Nov 4 2020 kernel
drwxr-xr-x 3 root root 0 Nov 4 2020 kernel/x86
drwxr-xr-x 2 root root 0 Nov 4 2020 kernel/x86/microcode
-rw-r--r-- 1 root root 100352 Nov 4 2020 kernel/x86/microcode/GenuineIntel.bin
-rw-r--r-- 1 root root 2 Nov 4 2020 early_cpio
198 blocks
split工具用于对大文件进行切割,切割成多个小文件。
split命令的常用选项如下:
split [OPTION]... [FILE [PREFIX]]
选项 | 说明 |
---|---|
-b | 指定切割单位的大小 |
-d | 使用数值区分文件的后缀名 |
#示例一:切割文件,默认是以字母为切割文件的后缀的。
[root@xuzhichao data]# ll -h
total 320M
-rw-r--r-- 1 root root 320M May 27 00:18 exp.tar
[root@xuzhichao data]# split -b 20M exp.tar newfile
[root@xuzhichao data]# ll
total 655040
-rw-r--r-- 1 root root 335380480 May 27 00:18 exp.tar
-rw-r--r-- 1 root root 20971520 May 27 00:20 newfileaa
-rw-r--r-- 1 root root 20971520 May 27 00:20 newfileab
-rw-r--r-- 1 root root 20971520 May 27 00:20 newfileac
-rw-r--r-- 1 root root 20971520 May 27 00:20 newfilead
-rw-r--r-- 1 root root 20971520 May 27 00:20 newfileae
-rw-r--r-- 1 root root 20971520 May 27 00:20 newfileaf
-rw-r--r-- 1 root root 20971520 May 27 00:20 newfileag
-rw-r--r-- 1 root root 20971520 May 27 00:20 newfileah
-rw-r--r-- 1 root root 20971520 May 27 00:20 newfileai
-rw-r--r-- 1 root root 20971520 May 27 00:20 newfileaj
-rw-r--r-- 1 root root 20971520 May 27 00:20 newfileak
-rw-r--r-- 1 root root 20971520 May 27 00:20 newfileal
-rw-r--r-- 1 root root 20971520 May 27 00:20 newfileam
-rw-r--r-- 1 root root 20971520 May 27 00:20 newfilean
-rw-r--r-- 1 root root 20971520 May 27 00:20 newfileao
-rw-r--r-- 1 root root 20807680 May 27 00:20 newfileap
#示例二:使用数值做为切割文件的后缀
[root@xuzhichao data]# split -d -b 20M exp.tar newsplit
[root@xuzhichao data]# ll newsplit*
-rw-r--r-- 1 root root 20971520 May 27 00:22 newsplit00
-rw-r--r-- 1 root root 20971520 May 27 00:22 newsplit01
-rw-r--r-- 1 root root 20971520 May 27 00:22 newsplit02
-rw-r--r-- 1 root root 20971520 May 27 00:22 newsplit03
-rw-r--r-- 1 root root 20971520 May 27 00:22 newsplit04
-rw-r--r-- 1 root root 20971520 May 27 00:22 newsplit05
-rw-r--r-- 1 root root 20971520 May 27 00:22 newsplit06
-rw-r--r-- 1 root root 20971520 May 27 00:22 newsplit07
-rw-r--r-- 1 root root 20971520 May 27 00:22 newsplit08
-rw-r--r-- 1 root root 20971520 May 27 00:22 newsplit09
-rw-r--r-- 1 root root 20971520 May 27 00:22 newsplit10
-rw-r--r-- 1 root root 20971520 May 27 00:22 newsplit11
-rw-r--r-- 1 root root 20971520 May 27 00:22 newsplit12
-rw-r--r-- 1 root root 20971520 May 27 00:22 newsplit13
-rw-r--r-- 1 root root 20971520 May 27 00:22 newsplit14
-rw-r--r-- 1 root root 20807680 May 27 00:22 newsplit15
当需要把切割后的文件进行合并时,可以使用cat和重定向的方式进行合并,示例如下:
#示例:
[root@xuzhichao data]# cat newsplit* > newexp.tar
[root@xuzhichao data]# rm -f newsplit*
[root@xuzhichao data]# tar tf newexp.tar
test1/
test1/list.txt
test1/exlist.txt
test1/backup.tar.bz
test1/boot.cpio
test1/a.cpio
test1/b.cpio
test1/root.cpio
test1/conf.cpio
test1/etc.tar
标签:rom 打包压缩 gunzip etc txt 显示文件 linu 文件 文件传输
原文地址:https://www.cnblogs.com/xuwymm/p/14815635.html