Linux系统的文件压缩主要依赖三个压缩命令——gzip
,bzip2
,xz
以及一个打包命令——tar
。gzip
命令:gzip
是Linux系统下应用非常广泛的一个压缩命令,gzip
可以解开compress
,zip
,gzip
等软件所压缩的文件,而gzip所建立的压缩文件通常后缀名为*.gz
。gzip
的语法:
gzip [ -cdtvk1~9 ] [ name ]
参数意义:
-c :将压缩的数据输出到文件,默认为标准输出(屏幕)可通过数据流重定向来写入其他文件;
-d :表示解压缩而非压缩;
-t:可以用来检验一个压缩文件的一致性,看其有无错误;
-v:可以显示出原文件/压缩文件的压缩比等信息;
-k:保留原始文件;
-1~9:数字代表压缩等级,-1压缩比最差,-9最好,默认为-6,但压缩比越好相应的压缩时间就越长;
需要注意的是,使用gzip
进行压缩时,在默认的状态下原文件会被压缩成后缀为.gz
的文件,而原文件也将不复存在;若要保留原文件请使用-k
参数。bzip2
命令与xz
命令的用法和参数都和gzip
命令差不多,只不过bzip
命令生成的文件后缀名为.bz2
,而且bzip2
的压缩比较gzip
要更好,相应的花费的时间也就更长一点;而xz
生成的文件后缀名为.xz
,xz
的压缩比较bzip2
又要更好一点,但其压缩时间也是3个命令中最长的。
打包命令——tar
:上述三个命令大多都是针对单一文件进行压缩,虽然他们也可以对目录进行压缩,不过,他们在执行的时候是将目录内的所有文件分别进行压缩。而tar
则可以将多个目录或是文件打包成一个大文件,同时也可以通过上述三个命令的支持对文件进行压缩。
tar [-z|j|J] [cv] [-f 待建立的新文件名] [原文件名] //打包与压缩
tar [-z|j|J] [cv] [-f 既有的文件名] //查看文件名
tar [-z|j|J] [cv] [-f 既有的文件名] [-C 目录] //解压缩
参数意义:
-c:建立打包文件;
-t:查看打包文件中含有那些文件名;
-x:解压缩,可以用-C解压到指定目录;
-v:显示正在处理的文件名;
-z:通过gzip的支持进行压缩/解压锁;
-j:通过bzip2的支持进行压缩/解压缩;
-J:通过xz的支持进行压缩/解压缩;
tar
还有许多非常好用的功能,这里就不一一介绍了。