Linux下常见的压缩、解压缩命令


 

一、.tar.gz格式和.tar.bz2格式

  使用tar命令后跟选项的方式实现tar命令和gzip或者bzip2命令的组合,实现同时进行打包和压缩,这也是最经常使用的压缩和解压缩方式

  https://www.linuxcool.com/tar

  一)语法格式

语法格式:tar [参数] [文件或目录]

  二)常用参数

-A    新增文件到以存在的备份文件
-B    设置区块大小
-c    建立新的备份文件
-C <目录>    切换工作目录,先进入指定目录再执行压缩/解压缩操作,可用于仅压缩特定目录里的内容或解压缩到特定目录
-d    记录文件的差别
-x    从归档文件中提取文件
-t    列出备份文件的内容
-z    通过gzip指令压缩/解压缩文件,文件名最好为*.tar.gz
-Z    通过compress指令处理备份文件
-f<备份文件>    指定备份文件
-v    显示指令执行过程
-r    添加文件到已经压缩的文件
-u    添加改变了和现有的文件到已经存在的压缩文件
-j    通过bzip2指令压缩/解压缩文件,文件名最好为*.tar.bz2
-v    显示操作过程
-l    文件系统边界设置
-k    保留原有文件不覆盖
-m    保留文件不被覆盖
-w    确认压缩文件的正确性
-p    保留原来的文件权限与属性
-P    使用文件名的绝对路径,不移除文件名称前的“/”号
-N <日期格式>    只将较指定日期更新的文件保存到备份文件里
-- -exclude=<范本样式>    排除符合范本样式的文件
-- -remove-files    归档/压缩之后删除源文件

二、.gz格式

  .gz格式和.bz2格式是Linux中最常见的压缩格式,使用gzip命令

  gzip不仅可以用来压缩大的、较少使用的文件以节省磁盘空间,还可以和tar命令一起构成Linux操作系统中比较流行的压缩文件格式。据统计,gzip命令对文本文件有60%~70%的压缩率。减少文件大小有两个明显的好处,一是可以减少存储空间,二是通过网络传输文件时,可以减少传输的时间。

  https://www.linuxcool.com/gzip

  一)语法格式

语法格式:gzip [参数]

  二)常用参数

-a    使用ASCII文字模式
-d    解开压缩文件
-f    强行压缩文件
-l    列出压缩文件的相关信息
-c    把压缩后的文件输出到标准输出设备,不去更动原始文件
-r    递归处理,将指定目录下的所有文件及子目录一并处理
-q    不显示警告信息

三、.biz格式

  Linux系统中bzip2命令的英文是“bunzip2”,即.bz2文件格式的压缩程序; bzip2命令系统默认是没有安装的,需要安装bzip2库才可以使用此命令。

  bzip2命令采用新的压缩演算法,压缩效果比传统的LZ77/LZ78压缩演算法来得好。若没有加上任何参数,bzip2压缩完文件后会产生.bz2的压缩文件,并删除原始的文件。

  一)语法格式

语法格式:bzip2 [参数] 文件系统

  二)常用参数

-c    将压缩与解压缩的结果送到标准输出
-d    执行解压缩
-f    bzip2在压缩或解压缩时,若输出文件与现有文件同名,预设不会覆盖现有文件。若要覆盖,请使用此参数
-k    bzip2在压缩或解压缩后,会删除原始的文件。若要保留原始文件,请使用此参数
-s    降低程序执行时内存的使用量
-t    测试.bz2压缩文件的完整性
-v    压缩或解压缩文件时,显示详细的信息
-z    强制执行压缩

四、.zip格式

  一)常用操作

1、把/home目录下面的mydata目录压缩为mydata.zip
 
zip -r mydata.zip mydata #压缩mydata目录
 
2、把/home目录下面的mydata.zip解压到mydatabak目录里面
 
unzip mydata.zip -d mydatabak
 
3、把/home目录下面的abc文件夹和123.txt压缩成为abc123.zip
 
zip -r abc123.zip abc 123.txt
 
4、把/home目录下面的wwwroot.zip直接解压到/home目录里面
 
unzip wwwroot.zip
 
5、把/home目录下面的abc12.zip、abc23.zip、abc34.zip同时解压到/home目录里面
 
unzip abc\*.zip
 
6、查看把/home目录下面的wwwroot.zip里面的内容
 
unzip -v wwwroot.zip
 
7、验证/home目录下面的wwwroot.zip是否完整
 
unzip -t wwwroot.zip
 
8、把/home目录下面wwwroot.zip里面的所有文件解压到第一级目录
 
unzip -j wwwroot.zip

  二)unzip主要参数

-c:将解压缩的结果
 
-l:显示压缩文件内所包含的文件
 
-p:与-c参数类似,会将解压缩的结果显示到屏幕上,但不会执行任何的转换
 
-t:检查压缩文件是否正确
 
-u:与-f参数类似,但是除了更新现有的文件外,也会将压缩文件中的其它文件解压缩到目录中
 
-v:执行是时显示详细的信息
 
-z:仅显示压缩文件的备注文字
 
-a:对文本文件进行必要的字符转换
 
-b:不要对文本文件进行字符转换
 
-C:压缩文件中的文件名称区分大小写
 
-j:不处理压缩文件中原有的目录路径
 
-L:将压缩文件中的全部文件名改为小写
 
-M:将输出结果送到more程序处理
 
-n:解压缩时不要覆盖原有的文件
 
-o:不必先询问用户,unzip执行后覆盖原有文件
 
-P:使用zip的密码选项
 
-q:执行时不显示任何信息
 
-s:将文件名中的空白字符转换为底线字符
 
-V:保留VMS的文件版本信息
 
-X:解压缩时同时回存文件原来的UID/GID

五、.tar.xz格式

  一)解压tar.xz安装包

 Ubuntu上安装nodejs,下载的文件是node-v8.11.1-linux-x64.tar.xz,这是两层压缩,外面是xz压缩,里层是tar压缩,所以分两步实现解压。
# xz -d node-v8.11.1-linux-x64.tar.xz
# tar -xvf node-v8.11.1-linux-x64.tar.xz123
也可以直接解压
# tar -xvJf node-v8.11.1-linux-x64.tar.xz1
tar.xz格式的压缩包大小比.tar要小,但是压缩解压缩时间比较长

  二)创建tar.xz压缩文件

先创建xxx.tar文件

# tar -cvf xxx.tar xxx1

再创建xxx.tar.xz文件

# xz -z xxx.tar1
如果要保留被压缩的文件,需要加上参数-k

  三)解压缩tar.xz文件

解压xz压缩文件

xz -d 待解压文件
-k 保留原文件;
这样解压出来的文件是tar格式的打包文件,需要执行:

tar -xvf 待解包文件名)

  需要注意的是:tar命令中没有直接解压xz压缩格式的参数(比如-f解压bzip2、 -z解压gzip)

相关