linux打包压缩工具详解
linux打包压缩工具详解
1.linux文件压缩工具
压缩文件会减少文件的大小,对于传输效率会大大提高,而文本类型的压缩比是比较高的,另外单个小文件传输速率会比较慢,而单个文件传输效率会比较高。
注意:一般压缩工具解压缩文件时是根据文件后缀进行的,因此需要严格指定压缩文件的后缀。
下面介绍几种常用的压缩工具。
1.1 compress命令详解
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
......
1.2 gzip命令详解
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
1.3 bzip2命令详解
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
1.4 xz命令详解
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
1.5 zip命令详解
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
2.linux文件打包工具
2.1 tar命令详解
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
2.2 cpio命令详解
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
2.3 split命令详解
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
linux打包压缩工具详解的更多相关文章
- Linux常用命令详解—基于CentOS7
## Linux 目录- /:根目录,一般只存放目录,不存放文件- /bin -> /usr/bin:可执行二进制文件的目录,也是常用命令目录,如常用的命令 ls.cat.mv 等- /boot ...
- linux awk命令详解
linux awk命令详解 简介 awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分 ...
- Linux启动过程详解(inittab、rc.sysinit、rcX.d、rc.local)
启动第一步--加载BIOS 当你打开计算机电源,计算机会首先加载BIOS信息,BIOS信息是如此的重要,以至于计算机必须在最开始就找到它.这是因为BIOS中包含了CPU的相关信息.设备启动顺序信息.硬 ...
- Linux启动过程详解
Linux启动过程详解 附上两张图,加深记忆 图1: 图2: 第一张图比较简洁明了,下面对第一张图的步骤进行详解: 加载BIOS 当你打开计算机电源,计算机会首先加载BIOS信息,BIOS信息是如此的 ...
- Linux /dev目录详解和Linux系统各个目录的作用
Linux /dev目录详解(转http://blog.csdn.net/maopig/article/details/7195048) 在linux下,/dev目录是很重要的,各种设备都在下面.下面 ...
- linux cat 命令详解
linux cat 命令详解 http://linux.chinaunix.net/techdoc/system/2007/11/16/972467.shtml adb shell su //这个不一 ...
- 【初级】linux rm 命令详解及使用方法实战
rm:删除命令 前言: windows中的删除命令大家都不陌生,linux中的删除命令和windows中有一个共同特点,那就是危险,前两篇linux mkdir 命令详解及使用方法实战[初级]中我们就 ...
- 用Advanced Installer制作DotNetBar for Windows Forms 12.0.0.1_冰河之刃重打包版详解
关于 DotNetBar for Windows Forms 12.0.0.1_冰河之刃重打包版 --------------------11.8.0.8_冰河之刃重打包版-------------- ...
- Linux netstat命令详解
Linux netstat命令详解 一 简介 Netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接,多 ...
- Linux crontab 命令详解
在 Linux 中,任务可以被配置在指定的时间段.指定的日期.或系统平均载量低于指定的数量时自动运行.红帽企业 Linux 预配置了对重要系统任务的运行,以便使系统能够时时被更新.譬如,被 locat ...
随机推荐
- 一文搞懂Javaweb的响应状态码
一.状态码大类 状态码分类 说明 1xx 响应中--临时状态码,表示请求已经接受,告诉客户端应该继续请求或者如果它已经完成则忽略它 2xx 成功--表示请求已经被成功接收,处理已完成 3xx 重定向- ...
- scala入门输出hello world!
官网下载scala 2.12.11 版zip包,解压到自定义目录并配置环境变量.
- 01 jQuery初使用
01 jQuery初使用 jQuery是一个曾经火遍大江南北的一个Javascript的第三方库. jQuery的理念: write less do more. 其含义就是让前端程序员从繁琐的js代码 ...
- 3D Object Detection Essay Reading 2024.04.05
EMIFF 论文:https://arxiv.org/abs/2303.10975 代码:https://github.com/Bosszhe/EMIFF 本文提出了一种新的基于摄像机的三维检测框 ...
- OpenHarmony Meetup 2023 广州站圆满举办,城市巡回全面启航
"OpenHarmony正当时--技术开源"OpenHarmony Meetup 2023城市巡回活动,旨在通过meetup线下交流形式,解读OpenHarmony作为下一代智 ...
- Qt:MD5加密
#include <QCryptographicHash> QString source_value = "123456"; // 待加密原始数据 QCryptogra ...
- NVIDIA实习
额,大意了,之前只是有想准备nvidia的实习,但是具体时间没有关注,结果这下正正好错过 这下提前细细准备一下nvidia的实习了 公众号 Cascatrix 其他经验
- 什么是慢SQL且如何查看慢SQL
什么是慢 SQL 且如何查看慢 SQL? 介绍 某个 SQL 执行时间超过指定时间时称为慢 SQL.我们可以查看慢 SQL,包括历史慢 SQL 以及当前慢 SQL. 查看历史慢 SQL 首先要设置 l ...
- 直播预告丨Hello HarmonyOS进阶课程第四课——ArkUI动画开发
为了帮助初识HarmonyOS的开发者快速入门,我们曾推出Hello HarmonyOS系列课程,从最基础的配置IDE和创建Hello World开始,详细介绍HarmonyOS基础.开发环境搭建.I ...
- centos7或者centos8下安装google-chrome谷歌浏览器 亲测成功 20220302
第一步: wget https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm 第二步: 安装 Google ...