linux 压缩解压打包工具大集合
压缩、解压缩及归档工具有很多,今天小编就整理几个大家较为常用的。
compress gzip bzip2 xz
zip tar cpio
一、压缩、解压工具
用法
压缩 工具 |
压缩后 压缩包格式 |
解压缩 (默认不保留源文件) |
保留原文件压缩 -c :将压缩结果打印到屏幕上 |
保留压缩文件解压 *zcat :将解压结果打印到屏幕上 |
强制压缩(默认不压缩硬链接) |
显示详细过程 |
压缩比 -#(数字越大,压缩比越高,速度越慢 文件越小) |
compress (压缩比最小,文件最大) |
.Z |
-d uncompress |
-c > X (>相当于创建文件,权限改变) |
zcat X.Z > X (>相当于创建文件,权限改变) |
-f |
-v |
无 |
gaip |
.gz |
-d gunzip |
-c > X
|
zcat X.gz > X |
-f |
-v |
-1 --fast -6 (默认) -9 --best |
bzip2 |
.bz2 |
-d bunzip |
-c > X
-k (权限不变) |
bzcat X.gz > X
-k |
-f |
-v |
-1 --fast -9 --best (默认) |
xz (压缩比最大,文件最小) |
.xz |
-d
|
-c > X
-k(权限不变) |
xzcat X.gz > X
-k |
-f |
-v |
-1 --fast -6 (默认) -9 --best |
1、compress
压缩文件,会删除原来文件,生成压缩文件
格式 : .Z
解压 : -d 解压文件,会删除压缩文件,生成原来文件 (不能tab补齐)
uncompress 和-d一样 (能tab补齐)
zcat X.Z > X zcat X.Z 将解压结果打印到屏幕上,配合重定向,将解压的结果导入到 .Z压缩文件中,不删除原文件,生成压缩文件,但因为>生成新文件,权限会变。
显示结果: -c 将压缩结果打印到屏幕上,配合重定向,将压缩的结果导入到 .Z压缩文件中,不删除原文件,生成压缩文件,但因为>生成新文件,权限会变。(可以对硬链接数为2的文件压缩)
强制压缩: -f 默认不对硬链接数为2及以上的文件压缩,加上f,强制压缩指定文件,而其他同inode的文件硬链接数减1.
显示详细过程:-v
2、gzip
压缩文件,会删除原来文件,生成压缩文件
格式 : .gz
解压 : -d 解压文件,会删除压缩文件,生成原来文件(能tab补齐)
gunzip 和-d一样
zcat X.gz > X (原理同上compress)
显示结果: -c (原理同上compress)
强制压缩: -f (原理同上compress)
显示详细过程:-v
压缩比: -# 数字越大,压缩比越高,速度越慢,文件越小。
-1 等于 --fast
-2,3,4,5,6(default默认),7,8
-9 等于 --best
3、bzip2
压缩文件,会删除原来文件,生成压缩文件
格式 : .bz2
解压 : -d 解压文件,会删除压缩文件,生成原来文件(能tab补齐)
bunzip2 和-d一样
bzcat X.bz2 > X (原理同上compress)
保留原文件压缩、解压: -k 比compress,gzip 多出的用法
显示结果: -c (原理同上compress)
强制压缩: -f (原理同上compress)
显示详细过程:-v
压缩比: -# 数字越大,压缩比越高,速度越慢,文件越小。
-1 等于 --fast
-2,3,4,5,6,7,8
-9 等于 --best (default默认)
4、xz
压缩文件,会删除原来文件,生成压缩文件
格式 : .xz
解压 : -d 解压文件,会删除压缩文件,生成原来文件(能tab补齐)
xzcat X.gz > X (原理同上compress)
保留原文件压缩、解压: -k 比compress,gzip 多出的用法
显示结果: -c (原理同上compress)
强制压缩: -f (原理同上compress)
显示详细过程:-v
压缩比: -# 数字越大,压缩比越高,速度越慢,文件越小。
-1 等于 --fast
-2,3,4,5,6(default默认),7,8
-9 等于 --best
比较 : 压缩比:xz > bzip2 > gzip > compress(不一定,有的情况bzip2 比xz要好)
xz 压缩比最大,文件最小
二、打包工具 zip tar
1、zip
打包压缩(自动生成后缀.zip)
① zip –r 生成文件(自动生成.zip) 打包文件(目录,普通文件都行)
例:zip -r app app/
② comment | zip 生成文件(自动生成.zip) -
这种方式打包,只能unzip -p X.zip > X 解包
例:cat /var/log/messages | zip messages -
unzip -p message.zip > message
解包解压缩
unzip X.zip
unzip -p 预览解压缩后的内容到屏幕,可以配置重定向将结果保存到指定文件,权限会发生变化。
2、tar
-f 包名,所有用法都要和-f组合
-c -f 创建包名字 原文件(可以指定多个)
-t -f 包名字 显示包中的文件名
-tv -f 详细显示包中的文件名
-r -f 包名字 新文件名(可以指定多个),向包里放指定文件
--delete -f 包名字 被删除的文件名(可以指定多个),从包中删除指定文件
-x -f 包名字 解出所有的文件到当前目录,把包中所有文件移出,解压包
-x -f 包名字 文件名 解所指定的文件到当前目录,从包中移出指定文件
-C 解包到指定目录
-v 详细信息
-Jcf 创建包的名字(.tar.xz) 原文件(可以指定多个) 打包并用xz压缩
-jcf 创建包的名字(.tar.bz2) 原文件(可以指定多个) 打包并用bzip压缩
-zcf 创建包的名字(.tar.gz) 原文件(可以指定多个) 打包并用gzip压缩
-T 指定个列表,包含需要被打包的文件,以换行符为间隔
-X 指定个排除列表,以换行符为间隔
split –b Size –d tar-file-name prefix-name 将tar包分隔为多个文件
cat 被分隔出的多个文件名 > 单个文件名 合并
3、cpio(不常用)
cpio 命令是通过重定向的方式将文件进行打包备份,还原恢复的工具,它可以解压以“.cpio” 或者“.tar” 结尾的文件。
cpio [ 选项] > 文件名或者设备名
cpio [ 选项] < 文件名或者设备名
选项
-o 将文件拷贝打包成文件或者将文件输出到设备上
-i 解包,将打包文件解压或将设备上的备份还原到系统
-t 预览,查看文件内容或者输出到设备上的文件内容
-v 显示打包过程中的文件名称。
-d 解包生成目录,在cpio 还原时,自动的建立目录
-c 一种较新的存储方式
例:将etc 目录备份 find ./etc -print |cpio -ov >etc.cpio
内容预览 cpio –tv < etc.cpio
要解包文件 cpio –idv < etc.cpio