Linux下的文件压缩和打包
Linux 上的压缩包文件格式,除了 Windows 最常见的*.zip、*.rar、.7z后缀的压缩文件,还有 .gz、.xz、.bz2、.tar、.tar.gz、.tar.xz、tar.bz2
文件后缀名 说明
*.zip zip程序打包压缩的文件
*.rar rar程序压缩的文件
*.tar tar程序打包,未压缩的文件
*.gz gzip程序 (GNU zip) 压缩的文件
*.xz xz程序压缩的文件
*.bz2 tar打包,gzip 程序压缩的文件
*.targz tar打包,gzip程序压缩的文件
*.tar.xz tar打包,xz程序压缩的文件
*.tar.bz2 tar打包,bzip2程序压缩的文件
*.tar.7z tar打包,7z程序压缩的文件
- compress
使用compress压缩源文件会被覆盖
文件后缀: .Z
-c 将结果打印到屏幕上,压缩文件显示的则是乱码。
配合重定向,不会覆盖原文件,但权限会变,重定向的本质是创建新文件,新文件的权限与umask值有关
-f 默认不对硬链接数为2及以上的文件压缩,加上f,强制压缩指定文件,而其他同inode的文件硬链接数减1.
-v 显示详细过程。
如下图
解压缩 -d
uncompress
zcat X.Z > X 将文件解压到当前目录下,并保留源文件
- .zip
unzip 解压缩
|zip 将生成的文件名 -
可以将管道前的输出结果转为文件并压缩。通过此方式压缩的文件只能使用“unzip -p 压缩包 > 新文件 ”来解压缩
解压:
pwd4文件与pwd文件大小相等,证实此命令。
unzip -p 预览解压缩后的内容到屏幕,可以配置重定向将结果保存到指定文件,权限会发生变化。
zip -r 新文件名.zip 被压缩打包的文件(可以为多个文件)
-
gzip
后缀:.gz
-c 将结果打印到屏幕上,配合重定向,不会覆盖原文件,但权限会变。
-f 默认不对硬链接数为2及以上的文件压缩,加上f,强制压缩指定文件,而其他同inode的文件硬链接数减1.
-v 显示详细过程。
-# 数字越大,压缩比越高,速度越慢,文件越小。
-1 等于 --fast
-2,3,4,5,6(default),7,8
-9 等于 --best
解压缩
-d
gunzip
zcat X.gz > X
-
bzip2
.bz2
-k 保留原文件
-c 将结果打印到屏幕上,配合重定向,不会覆盖原文件,但权限会变。
-f 默认不对硬链接数为2及以上的文件压缩,加上f,强制压缩指定文件,而其他同inode的文件硬链接数减1.
-v 显示详细过程。
-# 数字越大,压缩比越高,速度越慢,文件越小。
-1 等于 --fast
-2,3,4,5,6,7,8
-9 等于 --best (default)
解压缩
-d
bunzip
bzcat X.bz2 > X
-
xz
.xz
-k 保留原文件
-f 默认不对硬链接数为2及以上的文件压缩,加上f,强制压缩指定文件,而其他同inode的文件硬链接数减1.
-v 显示详细过程。
-# 数字越大,压缩比越高,速度越慢,文件越小。
-0 等于 --fast
-1 -2,3,4,5,6(default),7,8
-9 等于 --best
解压缩
-d
xzcat
与gzip命令类似。
- tar
-cf 创建包名字 原文件(可以指定多个)
-tf 包名字 显示包中的文件名
-tvf 详细显示包中的文件名
-rf 包名字 新文件名(可以指定多个)
--delete -f 包名字 被删除的文件名(可以指定多个)
-xf 包名字 解出所有的文件到当前目录
将源文件删除后又从包中解出来。
-xf 包名字 文件名 解所指定的文件到当前目录
-C 解包到指定目录
-v 显示过程
-Jcf 创建包的名字(.tar.xz) 原文件(可以指定多个) 打包并用xz压缩
-jcf 创建包的名字(.tar.bz2) 原文件(可以指定多个) 打包并用bzip压缩
-zcf 创建包的名字(.tar.gz) 原文件(可以指定多个) 打包并用gzip压缩
-T 指定个列表,包含需要被打包的文件,以换行符为间隔
-X 指定个排除列表,以换行符为间隔
本文简单的列举了Linux中的一些压缩工具及其应用。