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 最快，压缩比最差；-9 最慢，压缩比最好；默认为-6#压缩.gz gzip example.py #原来的example.py文件会消失并产生example.py.gz文件 #压缩.gz并保留源文件 gzip -c example.py > example.py.gz #压缩.gz并保留源文件，以-9等级 gzip -9 -c example.py > example.py.gz #解压.gz gzip -d example.py.gz #显示.gz文件内容 zcat example.py.gz3.2 bzip2, bzcat-c ：stdout，以标准输出书写，并保留源文件-d ：解压缩的参数-z ：压缩的参数-# ：压缩等级，-1 最快，压缩比最差；-9 最慢，压缩比最好；默认为-6#压缩bz2 bzip2 -z example.py #原来的example.py文件会消失并产生example.py.bz2文件 #压缩.bz2并保留源文件 bzip2 -c example.py > example.py.bz2 #压缩.bz2并保留源文件，以-9等级 bzip2 -9 -c example.py > example.py.bz2 #解压.bz2 bzip2 -d example.py.bz2 #显示.gz文件内容 bzcat example.py.bz24. zip压缩、unzip解压缩命令的使用详解4.1 zip 压缩zip 压缩主要参数-f 更新现有的文件-u 与 -f 参数类似，但是除了更新现有的文件外，也会将压缩文件中的其他文件解压缩到目录中-d 指定文件解压缩后所要存储的目录-m 将文件压缩并加入压缩文件后，删除原始文件，即把文件移到压缩文件中-r 将指定的目录下的所有子目录以及文件一起处理-j 不处理压缩文件中原有的目录路径-0 只存储，不压缩-l 显示压缩文件内所包含的文件-1 较快速度的压缩-9 较高质量的压缩-q 安静模式，在压缩的时候不显示指令的执行过程-v 执行时显示详细的信息-c 将解压缩的结果显示到屏幕上，并对字符做适当的转换-z 仅显示压缩文件的备注文字-@ 从标准输入中读取名称，一个路径名称用一行-o 将压缩文件内的所有文件的最新变动时间设为压缩时候的时间-x 指定不要处理.zip压缩文件中的哪些文件-i 只压缩符合条件的文件-F 尝试修复损坏的压缩文件-D 压缩文件内不建立目录名称-A 调整可执行的自动解压缩文件-J 删除可执行文件，留下一个普通的 zip 归档文件-T 检查备份文件内的每个文件是否正确无误-X 解压缩时同时回存文件原来的 UID/GID-y 直接保存符号连接，而非该连接所指向的文件，本参数仅在 UNIX 之类的系统下有效-e 加密-n 不压缩具有特定字尾字符串的文件-h2 显示更多帮助zip 压缩实例#压缩zip #将当前文件夹下的所有文件打包成一个 myexample.zip 文件 zip myexample.zip * #把当前文件夹下所有 my1*.doc 的文件打包成一个 myexample.zip 文件 zip myexample.zip my1*.doc #把一个文件 abc.txt 和一个目录 dir1 压缩成为 myexample.zip zip -r myexample.zip abc.txt dir1 #将 /home/Blinux/html/ 这个目录下所有文件和文件夹打包为当前目录下的 myexample.zip #备注：-q 为安静模式，在压缩的时候不显示指令的执行过程 zip -qr myexample.zip /home/Blinux/html #添加一个文件到 .zip 文件中 #备注：如果当初并没有把 my32.doc 压在 myexample.zip 里面，现在把它加进去。-g 选项是增加而不要重新产生的意思。 zip -g myexample.zip my32.doc #将更改过的文件添加到压缩包中 #备注：如果当初 my2*.doc 都已经压缩进 myexample.zip 里面了，但是后来 my2*.doc 中有几个文件有更改，又不想去找出到底是哪些文件更改了，这条命令请系统自行帮助检查，更改过的才更新到压缩，否则就不必动。 zip -u myexample.zip my2*.doc #删除除 .zip 文件中的指定文件 #备注：如果当初 my18.doc 是压缩在 myexample.zip 中的一个文件，现在这条命令把它从压缩文件中抽走并删掉。-d 是删除的意思。 zip -d myexample.zip my18.doc4.2 unzip 解压缩unzip 解压缩主要参数-c 将解压缩的结果显示到屏幕上，并对字符做适当的转换-p 与 -c 参数类似，会将解压缩的结果显示到屏幕上，但不会执行任何的转换。-l 显示压缩文件内所包含的文件-f 更新现有的文件-t 检查压缩文件是否正确，但不解压-u 与 -f 参数类似，但是除了更新现有的文件外，也会将压缩文件中的其他文件解压缩到目录中-z 仅显示压缩文件的备注文字-v 执行时显示详细的信息。或查看压缩文件目录，但不解压-T 将压缩文件内的所有文件的最新变动时间设为解压缩时候的时间-x 指定不要处理 .zip 压缩文件中的哪些文件-d 指定文件解压缩后所要存储的目录-n 解压缩时不要覆盖原有的文件-q 安静模式，执行时不显示任何信息-o 不必先询问用户，unzip 执行后覆盖原有文件-a 对文本文件进行必要的字符转换-j 不处理压缩文件中原有的目录路径-aa 把所有的文件目录当作文本处理-U use escapes for all non-ASCII Unicode-UU 忽略 Unicode 编码字符-C 压缩文件中的文件名称区分大小写-L 将压缩文件中的全部文件名改为小写-X 解压缩时同时回存文件原来的 UID/GID-V 保留 VMS 的文件版本信息-K 保留文件的 setuid/setgid/tacky 属性-M 将输出结果送到 more 程序处理-O 指定字符编码为 DOS，Windows 和 OS/2-I 指定字符编码为 UNIXunzip 解压缩实例#解压zip #把文件解压到当前目录下 unzip myexample.zip #如果要把文件解压到指定的目录下，需要用到-d参数。 unzip -d /temp myexample.zip #解压的时候，有时候不想覆盖已经存在的文件，那么可以加上 -n 参数 /temp是指定的目录 unzip -n myexample.zip unzip -n -d /temp myexample.zip #将压缩文件 myexample.zip 在指定目录 tmp 下解压缩，如果已有相同的文件存在，要求 unzip 命令覆盖原先的文件 unzip -o myexample.zip -d /tmp/ #只看一下 zip 压缩包中包含哪些文件，不进行解压缩 unzip -l test.zip #查看显示的文件列表还包含压缩比率 unzip -v test.zip #检查 zip 文件是否损坏 unzip -t test.ziphttps://www.jianshu.com/p/1ea9920beecchttps://www.jb51.net/article/138120.htm