雨林的Blog - 压缩
type: channel
link: https://www.tok9.com/tag/压缩/
items: Linux中tar.gz、bz2、zip等压缩及解压命令以及含义

Linux中tar.gz、bz2、zip等压缩及解压命令以及含义
type: item
date: 2020-01-06T13:25:00+08:00
description: Linux中tar.gz、bz2、zip等压缩及解压命令以及含义1. 概览Linux下常见的压缩包格式有5种:ziptar.gztar.bz2tar.xztar.Z tar是打包格式，来源于最初打包程序被设计的目的：将文件备份到磁带上（tape archive）。tar命令本身只有打包作用，并不会进行压缩。tar.后的内容指的是压缩方式，常见的压缩方式有：gz：gzip格式（GUNZip）bz2：bzip2格式（basic leucine-zipper 2）2. 对目录（文件夹）进行压缩/解压不管使用何种压缩方法，都必须首先对目录进行打包操作，因此需要使用tar。需要说明的是，可能是由于tar 命令更多地受到古老的 UNIX 风格影响， 以下tar 命令中的连接符 - 不是必须的，可以省略。 压缩方式以gzip为例（如使用bz2，只需把参数中的g替换成j即可。）2.1 tar相关参数主选项：-c： create，建立压缩档案-x：extract，从文件中提取（即解压）-t：list，查看目标tar包中目录和文件列表-r：append，向压缩归档文件末尾追加文件-u：update，更新原压缩包中的文件 注意：以上5个命令是互斥的，使用了其中1个便不能再同时使用其他的4个命令。辅助选项：-f：file，使用档案文件或设备，这个选项在如今通常是必选的-m：modification time，把所有文件的修改时间设定为现在-v：verbose，在压缩或解压缩过程中显示正在处理的文件名-w：interaction，进行每一步都需要确认-N: newer，比后面接的日期更新的文件才会被打包-p：preserve-permissions，保留压缩包内所有文件的属性、权限-z：tar.gz，用gzip来压缩或解压-Z：tar.Z，用compress来压缩或解压-j：tar.bz2，用bzip2来压缩或解压-J：tar.xz，用xz来压缩或解压需要使用多个参数时，除了f需要放在最后，其他不做要求。2.2 实例以目录 /myexample为例。#压缩tar.gz tar -zcvf myexample.tar.gz myexample/ #压缩当前目录下所有.py文件到tar.gz tar -zcvf all_py_file.tar.gz *.py #解压tar.gz tar -zxvf myexample.tar.gz #解压tar.gz到指定文件夹 tar -zxvf myexample.tar.gz -C $PATH#压缩tar.Z tar -Zcvf myexample.tar.Z myexample/ #解压tar.Z tar -Zxvf myexample.tar.Z#压缩tar.bz2 tar -jcvf myexample.tar.gz myexample/ #解压tar.bz2 tar -jxvf myexample.tar.bz2#压缩tar.xz tar -Jcvf myexample.tar.xz myexample/ #解压tar.xz tar -Jxvf myexample.tar.xz其他一些可能常用的操作：#查阅myexample.tar.gz中有哪些文件 tar -ztf myexample.tar.gz tar -ztvf myexample.tar.gz #会显示所有文件的详细信息，包括权限、创建时间等 #只压缩比2019-1-17更新的文件 tar -N '2019/1/17' -zcvf myexample.tar.gz myexample/ #压缩myexample文件夹下除了子文件夹mysub的所有文件 tar --exculde myexample/mysub -zcvf myexample.tar.gz #只解压myexample.tar.gz内子文件夹mysub tar -zxvf myexample.tar.gz mysub #根目录myexample不需要写2.3 注意事项1.关于tar的详细命令可以使用如下命令：tar --help2.事实上, 从1.15版本开始tar就可以自动识别压缩的格式,故不需人为区分压缩格式就能正确解压：tar -xvf filename.tar.gz tar -xvf filename.tar.bz2 tar -xvf filename.tar.xz tar -xvf filename.tar.Z3 对文件进行压缩/解压以example.py为例。3.1 gzip zcat-c ：stdout，以标准输出书写，并保留源文件-d ：decompress，解压缩参数-t ：test，检验一个压缩档的一致性，看看文件有无错误；-# ：压缩等级，-1 最快，压缩比最差；…