对于刚刚接触Linux的人来说,一定会给Linux下一大堆各式各样的文件名给搞晕。别个不说,单单就压缩文件为例,我们知道在Windows下最常见 的压缩文件就只有两种,一是,zip,另一个是.rar。可是Linux就不同了,它有.gz、.tar.gz、tgz、bz2、.Z、.tar等众多的 压缩文件名,此外windows下的.zip和.rar也可以在Linux下使用,不过在Linux使用.zip和.rar的人就太少了。本文就来对这些 常见的压缩文件进行一番小结,希望你下次遇到这些文件时不至于被搞晕。

  在具体总结各类压缩文件之前呢,首先要弄清两个概念:打包和压缩。打包是指将一大堆文件或目录什么的变成一个总的文件,压缩则是将一个大的文件通过一些压 缩算法变成一个小文件。为什么要区分这两个概念呢?其实这源于Linux中的很多压缩程序只能针对一个文件进行压缩,这样当你想要压缩一大堆文件时,你就 得先借助另它的工具将这一大堆文件先打成一个包,然后再就原来的压缩程序进行压缩。

ZIP

zip可能是目前使用得最多的文档压缩格式。它最大的优点就是在不同的操作系统平台,比如Linux, Windows以及Mac OS,上使用。缺点就是支持的压缩率不是很高,而tar.gz和tar.gz2在压缩率方面做得非常好。闲话少说,我们步入正题吧:

linux下提供了zip和unzip程序,zip是压缩程序,unzip是解压程序。常用命令选项:

-d   从压缩文件内删除指定的文件,要解压到指定目录需要在目录前指定-d。

-m  将文件压缩并加入压缩文件后,删除原始文件,即把文件移到压缩文件中。

-q   不显示指令执行过程。

-r   递归处理,将指定目录下的所有文件和子目录一并处理。

-S   包含系统和隐藏文件

-v   显示指令执行过程或显示版本信息。

-i<范本样式> 只压缩符合条件的文件。

-x<范本样式> 压缩时排除符合条件的文件。

-n  <字尾字符串> 不压缩具有特定字尾字符串的文件。

-<压缩效率> 压缩效率是一个介于1-9的 数值。

举例:

zip -r mydata.zip mydata          //将mydata目录压缩为mydata.zip
unzip mydata.zip -d mydatabak      //将mydata.zip解压到mydatabak目录,注意要-d
unzip mydata.zip             //将mydata.zip解压到当前mydata目录
unzip dsw\*.zip              //将dsw目录下的所有zip文件解压到dsw目录下
unzip -v wwwroot.zip           //查看wwwroot.zip里面的内容

RAR

要在linux下处理.rar文件,需要安装RAR for Linux,可以从网上下载,但要记住,RAR for Linux不是免费的,然后安装:

tar -xzpvf rarlinux-3.2..tar.gz
cd rar
make

这样就安装好了,安装后就有了rar和unrar这两个程序,rar是压缩程序,unrar是解压程序。

rar x vpsyou.rar           //解压 vpsyou.rar 到当前目录
rar vpsyou.rar ./vpsyou.com/    //将 vpsyou.com 目录打包为 vpsyou.rar
rar c test.rar            //
rar d test.rar file1.txt      //从test.rar包中删除file1.txt
rar e test.rar            //不能保存当前目录结构,所有文件都在本目录
rar x test.rar            //解压出来会保存目录结构

a 添加文件到操作文档

c 对操作文档添加说明注释

d 从文档中删除文件

e 将文件解压到当前目录(所有的文件被解压到当前目录,不能保持压缩前的目录结构,如果想保持压缩前的目录结构,用x解压)

x 带路径解压文档中内容到当前目录

TAR

Tar是在Linux中使用得非常广泛的文档打包格式。它的好处就是它只消耗非常少的CPU以及时间去打包文件,他仅仅只是一个打包工具,并不负责压缩。

如何打包:

# tar -cvf archive_name.tar directory_to_compress

如何解包:

# tar -xvf archive_name.tar /tmp/  //后面解压路径为null时,默认解压到当前路径

常用参数:

-c 建立新的归档文件
-r 向归档文件末尾追加文件
-x 从归档文件中解出文件
可以这样记忆,创建新的文件是c,追加在原有文件上用r,从文件中解压出用x

-t  查看内容
-O 将文件解开到标准输出
-v 处理过程中输出相关信息
-f 对普通文件操作                  //似乎一直都要用f,不然的话,可能会不显示

-j  调用bzip2来压缩归档文件
-z 调用gzip来压缩归档文件,与-x联用时调用gzip完成解压缩
-Z 调用compress来压缩归档文件,与-x联用时调用compress完成解压缩

-p :使用原文件的原来属性(属性不会依据使用者而变)
-P :可以使用绝对路径来压缩!
-N :比后面接的日期(yyyy/mm/dd)还要新的才会被打包进新建的文件中!
--exclude FILE:在压缩的过程中,不要将 FILE 打包!

举例:

tar cvf dsw.tar dsw                   //将dsw文件打包为tar文件
tar czvf dsw.tar.gz dsw                 //z结合c时,表示将文件打包为tar.gz格式
tar xzvf dsw.tar.gz                    //z结合x时,表示将文件从.tar.gz包中解压
tar zxvf dsw.tar.gz -C builds             //指定解压dsw到builds目录,注意需要-C
tar zcvfp back.tar.gz ./new             //打包new目录下所有文件,并保留其原有属性
tar -zcvf file.tar.gz ./new/ --exclude ./new/tmp  //打包new目录下除tmp之外的所有文件夹

TAR.GZ TAR.Z TAR.BZ2

tar.gz这种格式是我使用得最多的压缩格式。它在压缩时不会占用太多CPU的,而且可以得到一个非常理想的压缩率。与gzip相对的解压程序是gunzip

compress也是一个压缩程序,但是好象使用compress的人不如gzip和bzip2的人多,Z结尾的文件就是bzip2压缩的结果.与 compress相对的解压程序是uncompress ,tar中使用-Z这个参数来调用compress。

bzip2是一个压缩能力更强的压缩程序,.bz2结尾的文件就是bzip2压缩的结果,这种压缩格式是我们提到的所有方式中压缩率最好的。当然,这也就意味着,它比前面的方式要占用更多的CPU与时间。与bzip2相对的解压程序是bunzip2,tar中使用-j这个参数来调用gzip

注意:请注意z和Z与tar中c(归档),x(解压)配合使用

z + c = 将文件打包并使用gzip压缩为tar.gz

z + x = 将压缩包使用gzip将包解压

Z + c = 将文件打包并使用compress压缩为tar.Z

Z + x = 将压缩包使用compress解压

j  + c = 将文件打包并使用bzip2压缩为tar.bz2

j  + x =  将压缩包使用gzip将包解压

解压缩:

tar -cZf all.tar.Z *.jpg      //将所有.jpg文件打成tar包,并且其用compress压缩
tar -xZf all.tar.Z         //将上面打的包解开
上面这个解包命令将会将文档解开在当前目录下面。当然,你也可以用这个命令来捏住解包的路径:
tar -zxvf archive_name.tar.gz -C /tmp/extract_here/ tar -cjf all.tar.bz2 *.jpg    //将所有.jpg文件打包成tar包,并且使用bzip2压缩
tar -xjf all.tar.bz2        //将上面打的包解压 

上面这个解包命令将会将文档解开在当前目录下面。当然,你也可以用这个命令来捏住解包的路径:

 tar -jxvf archive_name.tar.bz2 -C /tmp/extract_here/


ubantu 文件解压缩的更多相关文章

  1. 免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)

    前面介绍了六种.NET组件,其中有一种组件是写文件的压缩和解压,现在介绍另一种文件的解压缩组件SharpZipLib.在这个组件介绍系列中,只为简单的介绍组件的背景和简单的应用,读者在阅读时可以结合官 ...

  2. iOS中的加密方式 与 文件解压缩

    1.Base64加密方式 Base64是一种加密方法,可逆的加密. Base64中的可打印字符包括字母A-Z.a-z.数字0-9,这样共有62个字符./ + 填充 = echo -n BC|base6 ...

  3. java Zip文件解压缩

    java Zip文件解压缩 为了解压缩zip都折腾两天了,查看了许多谷歌.百度来的code, 真实无语了,绝大多数是不能用的.这可能跟我的开发环境有关吧. 我用的是Ubuntu14.04,eclips ...

  4. 文件 "c:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\DATA\ttt.mdf" 已压缩,但未驻留在只读数据库或文件组中。必须将此文件解压缩。 CREATE DATABASE 失败。无法创建列出的某些文件名。请查看相关错误。 (.Net SqlClient Data Provider)

    问题: 文件 "c:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\DATA\ttt.mdf" 已压缩,但 ...

  5. 如何解决rar文件解压缩失败

    附件经常会是一系列的压缩文件,下载是默认文件名是一个随机数字.因而下载完会出现压缩文件解压缩失败解决方法:下载时重命名为带一定顺序的文件名,如文件1,文件2,文件3等 如何解决单个文件解压失败?论坛中 ...

  6. Android Zip文件解压缩代码

    2011-04-01 17:58:52|  分类: Android |举报 |字号 订阅   在Android平台中如何实现Zip文件的解压 缩功能呢? 因为Android内部已经集成了zlib库,对 ...

  7. CRC文件解压缩问题

    CRC问题一般有三种可能1.你的硬盘出现坏道2.你的硬盘数据线受损3.还可能是主板和内存的问题 硬盘坏道的表现硬盘使用久了就可能出现各种各样的问题,而硬盘“坏道”便是这其中最常见的问题.硬盘出现坏道除 ...

  8. python利用unrar实现rar文件解压缩

    python第三方包unrar可以实现rar文件的解压缩,它以动态库UnRAR为基础,封装而成 1. 下载UnRAR动态库 https://pypi.python.org/pypi/unrar/0.2 ...

  9. Linux下*.tar.gz文件解压缩命令

    1.压缩命令: 命令格式:tar  -zcvf   压缩文件名.tar.gz   被压缩文件名 可先切换到当前目录下.压缩文件名和被压缩文件名都可加入路径. 2.解压缩命令: 命令格式:tar  -z ...

随机推荐

  1. SQL Sever 2008配置工具中过程调用失败解决方法

    刚刚装了VS2013.然后打开数据库时,不管怎样也连不上.打开数据库配置,出现例如以下界面: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbHU5MzAx ...

  2. Showing a tooltip

    We can provide a balloon help for any of our widgets. #!/usr/bin/python # -*- coding: utf-8 -*- &quo ...

  3. html中title属性换行实现

    本文主要讲解titile属性换行的实现方式.<title> 元素可定义文档的标题,可以应用在img.a等标签上. 1.实现方式: <!DOCTYPE html> <htm ...

  4. oracel become INDEX UNUSABLE

    1. IMPORT PARTITION or conventional path SQL*Loader. 2. Direct-path SQL*Loader leaves affected local ...

  5. iscsi initiator端Note

    iscsi initiator端    (1)安装open-scsi      sudo  apt-get install open-iscsi open-iscsi-utils     (2)cha ...

  6. PO*创建标准采购订单

    --   l_iface_rec       po_headers_interface%ROWTYPE; 校验头相关信息 ) INTO l_po_count FROM po_headers_all p ...

  7. reload基础

    # -*- coding: utf-8 -*- #python 27 #xiaodeng #reload基础 #与import和from的不同之处: #reload是python的内置函数,而不是语句 ...

  8. CreateThread、_beginthreadex和AfxBeginThread .

    创建线程好几个函数可以使用,可是它们有什么区别,适用于什么情况呢?参考了一些资料,写得都挺好的,这里做一些摘抄和整合. [参考1]CreateThread, AfxBeginThread,_begin ...

  9. 在ListView的右边添加字母列表

    在ListView的右边添加字母列表,点击某个字母时,列表就滚动到预期位置. <!-- 数字和字母栏在标题栏下边并且停靠在右边 --> <com.txrj.sms.component ...

  10. js 排序

    在本例中,我们将创建一个数组,并按字母顺序进行排序: <script type="text/javascript"> var arr = new Array(6) ar ...