通常我们在传送或者备份文件的时候需要用到打包跟压缩命令,将文件或目录压缩打包,不仅可以节约存储空间、节省网络带宽,还有利于保持目录的完整性、防止个别文件的丢失。Linux下常用的打包命令是tar,常用的压缩命令有gzip跟bzip2,它们对应的解压输出命令为zcat跟bzcat。
一、后缀名
Linux的环境中,压缩包的后缀名大多是tar、tar.gz、tgz、gz、bz2,虽然Linux系统并不以后缀名来判断文件类型,但出于方便用户区分不同打包压缩文件类型的考量,我们习惯为打包压缩文件加上后缀名。下面我们列出常见后缀名与文件类型的对应关系:
*.gz gzip命令压缩后的文件; *.bz2 bzip2命令压缩后的文件; *.tar tar命令打包后的文件,并没有压缩过; *.tgz 先用tar命令打包,再用gzip命令压缩后的文件; *.tar.gz 同上,先用tar命令打包,再用gzip命令压缩后的文件; *.tar.bz2 tar 先用tar命令打包,再用bzip2命令压缩后的文件;
二、压缩命令gzip,zcat
选项与参数:
-c :保持原文件不变,将压缩(或解压)后的内容打印到标准输出,可以通过重定向命令将内容保存到新文件中去; -d :解压缩的参数; -t :测试压缩文件的完整性; -v :压缩(或解压)的同时显示相关信息; -l :显示原文件/压缩文件大小、压缩率以及原文件名等信息; -# :指定压缩等级,-9压缩率最大,但是最慢,-1压缩率最小,但是最快,默认等级指定为-6。
zcat等价于”gzip -cd”,即保持压缩文件不变,将解压后的内容打印到标准输出。
三、压缩命令bzip2,bzcat
选项与参数:
-c :保持原文件不变,将压缩(或解压)后的内容打印到标准输出,可以通过重定向命令将内容保存到新文件中去; -z :压缩的参数(压缩时可以省略该参数); -d :解压缩的参数; -t :测试压缩文件的完整性; -v:压缩(或解压)的同时显示相关信息; -# :指定压缩等级,-9压缩率最大,但是最慢,-1压缩率最小,但是最快,默认等级指定为-6。
bzcat等价于”bzip2 -cd”,即保持压缩文件不变,将解压后的内容打印到标准输出。
四、打包压缩命令tar
gzip跟bzip2命令通常只针对单一文件进行压缩,虽然它们也可以压缩目录,但解压以后,压缩前的目录将变成同名的单一文件,而无法轻松地恢复原本的目录结构,所以如果要对多个文件(或目录)进行压缩,应该先用tar命令将多个文件(或目录)打包成一个tar包,然后再用gzip或bzip2压缩该tar包,解压的步骤相反,即先解压成tar包,然后再将tar包解开。不过由于tar整合了对gzip跟bzip2,通常我们使用一条tar命令就能完成解压解包两个过程。
选项与参数:
-c :创建tar包的参数,可以结合-v来查看正在被打包的文件名; -t :查看tar包内包含哪些文件,需要结合-f来查看; -x :解压缩的参数,可以结合-C(大写)在特定目录解开; -j :在bzip2的支援下进行压缩/解压缩,此时文件名最好为*.tar.bz2; -z :在gzip的支援下进行压缩/解压缩,此时文件名最好为*.tar.gz; -v :在压缩(或解压)的过程中显示正在处理的文件名; -f filename:-f 紧跟要生成的tar包名称,建议将-f单独写一个选项; -C 目录:指定目录解压缩,不使用则解压到当前目录或者绝对路径。
除非注明,文章均为CppLive 编程在线原创,转载请注明出处,谢谢。