在Linux中,解压、压缩、打包是日常生活中经常用到的几个操作,但是因为参数比较多,所以没有记忆点,有很多压缩文件的类型。经常使用,真的很容易忘记。所以本篇笔记整理一下常用的解压、压缩、打包命令。在正式学习之前,需要先搞清楚两个概念,打包和压缩不是一回事:打包:是指将大量文件或目录变成一个总文件。压缩:就是通过压缩算法把一个大文件变成一个小文件。为什么要区分这两个概念呢?这是由于Linux中很多压缩程序只能压缩一个文件,所以当你要压缩大量文件时,必须先将大量文件打包成一个包(tar命令),然后使用压缩程序执行压缩(gzipbzip2命令)。tarcompression/packing只打包,不压缩。tar-cvffoo.tarfoofoo.tar的文件名是自定义的,但是我们习惯使用.tar作为打包文件。包装和压缩。-z参数表示.tar.gz或.tgz后缀代表gzip压缩的tar包。tar-zcvffoo.tar.gzfoo被打包压缩。-j参数表示使用.tar.bz2后缀作为tar包名。tar-jcvffoo.tar.gzfoo直接在当前目录下解压:tar-zxvffoo.tar.gz注意如果这个目录下有同名文件,不会询问,直接覆盖.解压到指定文件夹:tar-zxvffoo.tar.gz-Cgzipgzip命令用于压缩文件。被它压缩的文件在其名称后会有多个.gz扩展名(没有.tar)。压缩将当前目录下的每个文件压缩成.gz文件:gzip*递归压缩指定目录下的所有文件和子目录:gzip-r解压当前目录下的foo.gz文件:gzip-dfoo。gz解压完成后,foo.gz变成了foo文件。递归解压目录:gzip-dr解压完成后,目录下的所有.gz文件都会变成普通文件。zipzip可以用来解压文件,也可以用来打包文件。使用它压缩文件将另外生成具有.zip扩展名的压缩文件。压缩将当前目录下的指定目录压缩成.zip文件:zip-q-rfoo.zip将指定目录下的所有文件和文件夹压缩成.zip文件:zip-q-rfoo.zip/注意生成的压缩文件在命令执行的目录下。解压缩unzip命令用于解压缩由zip命令压缩的.zip存档。查看压缩包内容:unzip-vfoo.zip将压缩包解压到指定目录。如果相同文件已经存在,则要求解压命令不覆盖原文件。unzip-nfoo.zip-d/将压缩文件解压到当前目录,如果相同文件已经存在,不询问直接覆盖。unzip-ofoo.zip总结Linux下的压缩解压其实并不复杂,只是不常用的时候很容易忘记容器。如果不知道在什么场景下使用什么命令,可以参考:如果只有一个大文件,可以使用gzip或者zip命令。如果是一个包含很多子目录和文件的完整目录,可以使用tar命令。