Ubuntu下如何解压缩zip,tar,tar.gz,tar.bz2,rar文件

这么多年来,数据压缩对我们来说是非常有用的。无论是在邮件中发送的图片用的zip文件还是在服务器压缩数据文件,我们都可以让下载更容易或者有效 的节约磁盘空间。某些压缩格式有时允许我们以60%的比率(甚至更高)压缩文件。下面我将会给大家演示如何用这些命令在Linux下面去压缩文件或者目 录。我们将学习zip, tar, tar.gz和tar.bz2等压缩格式的基本用法。这几个是在Linux里面常用的压缩格式。

 

在我们探究这些用法之前,我想先跟大家分享一下使用不同压缩格式的经验。当然,我这里讲到的只是其中的一些用法,除我讲到的之外,他们还有更多的地 方值得我们探讨。我已经意识到我需要了解两到三种压缩格式,才能更好的使用他们。zip格式是第一个需要了解的格式。因为它实际上已成为压缩文件的标准选 择,而且它在windows上也能使用。我经常用zip格式压缩那些需要共享给windows用户的文件。如果只是共享给linux用户或者Mac用户, 那我偏向于选择tar.gz格式。

 

ZIP

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

我们可以使用下列的命令压缩一个目录:

# zip -r archive_name.zip directory_to_compress

 

下面是如果解压一个zip文档:

# unzip archive_name.zip

 

TAR

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

# tar -cvf archive_name.tar directory_to_compress

 

如何解包:

# tar -xvf archive_name.tar.gz

 

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

# tar -xvf archive_name.tar -C /tmp/extract_here/

 

TAR.GZ

这种格式是我使用得最多的压缩格式。它在压缩时不会占用太多CPU的,而且可以得到一个非常理想的压缩率。使用下面这种格式去压缩一个目录:

# tar -zcvf archive_name.tar.gz directory_to_compress

 

解压缩:

# tar -zxvf archive_name.tar.gz

 

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

# tar -zxvf archive_name.tar.gz -C /tmp/extract_here/

 

TAR.BZ2

这种压缩格式是我们提到的所有方式中压缩率最好的。当然,这也就意味着,它比前面的方式要占用更多的CPU与时间。这个就是你如何使用tar.bz2进行压缩。

# tar -jcvf archive_name.tar.bz2 directory_to_compress

 

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

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

 

数据压缩是非常有用的,尤其是对于备份来说。所以,你现在应该考虑在你的备份脚本中使用你在这里学到的压缩方式备份你基本的规则文件以减小你备份文件的大小。

 

过段时间之后,你就会意识到,在压缩率与CPU占用时间上会有一个平衡,你也要学会如何去权衡什么时候你需要一个快但是压缩率低,什么时候需要一个压缩率高但是CPU点用高的压缩方式,然后你才能避免无谓的空间与时间。

 

来源:http://www.simplehelp.net/2008/12/15/how-to-create-and-extract-zip-tar-targz-and-tarbz2-files-in-linux/

如果tar不支持j这个参数就先用 
bzip2 -d xxx.tar.bz2 
把它解压成.tar文件,然后再用 
tar xvf xxx.tar 
拆包。
压缩解压 
linux下怎么解后缀名是gzip的文件? 
1.以.a为扩展名的文件: 
#tar xv file.a 
2.以.z为扩展名的文件: 
#uncompress file.Z 
3.以.gz为扩展名的文件: 
#gunzip file.gz 
4.以.bz2为扩展名的文件: 
#bunzip2 file.bz2 
5.以.tar.Z为扩展名的文件: 
#tar xvZf file.tar.Z  
或 #compress -dc file.tar.Z | tar xvf - 
6.以.tar.gz/.tgz为扩展名的文件: 
#tar xvzf file.tar.gz  
或 gzip -dc file.tar.gz | tar xvf - 
7.以.tar.bz2为扩展名的文件: 
#tar xvIf file.tar.bz2  
或 bzip2 -dc file.tar.bz2 | xvf - 
8.以.cpio.gz/.cgz为扩展名的文件: 
#gzip -dc file.cgz | cpio -div 
9.以.cpio/cpio为扩展名的文件: 
#cpio -div file.cpio  
或cpio -divc file.cpio 
10.以.rpm为扩展名的文件安装: 
#rpm -i file.rpm 
11.以.rpm为扩展名的文件解压缩: 
#rpm2cpio file.rpm | cpio -div 
12.以.deb为扩展名的文件安装: 
#dpkg -i file.deb 
13.以.deb为扩展名的文件解压缩: 
#dpkg-deb --fsys-tarfile file.deb | tar xvf - ar p  
file.deb data.tar.gz | tar xvzf - 
14.以.zip为扩展名的文件: 
#unzip file.zip 
在linux下解压Winzip格式的文件 
  要是装了jdk的话,可以用jar命令;还可以使用unzip命令。 
直接解压.tar.gz文件 
  xxxx.tar.gz文件使用tar带zxvf参数,可以一次解压开。XXXX为文件名。 例如: 
$tar zxvf xxxx.tar.gz 各种压缩文件的解压(安装方法)

文件扩展名 解压(安装方法)

.a ar xv file.a 
.Z uncompress file.Z 
.gz gunzip file.gz 
.bz2 bunzip2 file.bz2 
.tar.Z tar xvZf file.tar.Z 
compress -dc file.tar.Z | tar xvf - 
.tar.gz/.tgz tar xvzf file.tar.gz 
gzip -dc file.tar.gz | tar xvf - 
.tar.bz2 tar xvIf file.tar.bz2 
bzip2 -dc file.tar.bz2 | xvf - 
.cpio.gz/.cgz gzip -dc file.cgz | cpio -div 
.cpio/cpio cpio -div file.cpio 
cpio -divc file.cpio 
.rpm/install rpm -i file.rpm 
.rpm/extract rpm2cpio file.rpm | cpio -div 
.deb/install dpkg -i file.deb 
.deb/exrtact dpkg-deb --fsys-tarfile file.deb | tar xvf - 
ar p file.deb data.tar.gz | tar xvzf - 
.zip unzip file.zip 

bzip2 -d myfile.tar.bz2 | tar xvf

tar xvfz myfile.tar.bz2

x 是解压 
v 是复杂输出 
f 是指定文件 
z gz格式

gzip 
gzip[选项]要压缩(或解压缩)的文件名 
-c将输出写到标准输出上,并保留原有文件。 
-d将压缩文件压缩。 
-l对每个压缩文件,显示下列字段:压缩文件的大小,未压缩文件的大小、压缩比、未压缩文件的名字 
-r递归式地查找指定目录并压缩或压缩其中的所有文件。 
-t测试压缩文件是正完整。 
-v对每一个压缩和解压缩的文件,显示其文件名和压缩比。 
-num-用指定的数字调整压缩的速度。 
举例: 
把/usr目录并包括它的子目录在内的全部文件做一备份,备份文件名为usr.tar 
tar cvf usr.tar /home 
把/usr 目录并包括它的子目录在内的全部文件做一备份并进行压缩,备份文件名是usr.tar.gz 
tar czvf usr.tar.gz /usr 
压缩一组文件,文件的后缀为tar.gz 
#tar cvf back.tar /back/ 
#gzip -q back.tar 
or 
#tar cvfz back.tar.gz /back/ 
释放一个后缀为tar.gz的文件。 
#tar zxvf back.tar.gz 
#gzip back.tar.gz 
#tar xvf back.tar

tar的使用方法:

1:压缩一组文件为tar.gz后缀 
tar cvf backup.tar /etc 
或gzip -q backup.tar.gz

2:释放一个后缀为tar.gz的文件 
gunzip backup.tar.gz 
或tar xvf backup.tar

3:用一个命令完成压缩 
tar cvf -/etc | gzip -qc >; backup.tar.gz

4:用一个命令完成释放 
gunzip -c backup.tar.gz | tar xvf -

5:如何解开ta.Z的文件 
tar xvfz backup.tar.Z 
或uncompress backup.tar.Z 
tar xvf backup.tar

6:如何解开.tgz文件 
gunzip backup.tgz

7:如何压缩和解压缩.bz2的包 
bzip2 /etc/smb.conf 这将压缩文件smb.conf成smb.conf.bz2 
bunzip2 /etc/smb.conf.bz2 在当前目录下还原smb.conf.bz2为smb.conf



rar

Linux默认安装下是不能解压和打包rar文件的。现在网上多数压缩包是rar格式的,所以需要一个rar工具。
首先在http://www.rarlab.com/download.htm下载RAR 3.60 beta 6 for Linux
我解压到/opt下,会自动建立rar目录。这个工具无需编译可以直接使用。
在bin目录中建立一个链接。ln -s /opt/rar/rar rar。
就可以用rar工具压缩和解压.rar文件了。不过此工具是命令方式的,和在DOS下的RAR操作是一样的。
 
命令格式: rar <command> -<swith 1> -<swith N> <archive> <files...> <@listfiles...> <path_to_extract\>
<Commands>
a 向压缩包中添加文件
c 添加压缩注释
cf 添加文件注释
cw 向文件中写压缩注释
d 从压缩包中删除文件
e 在当前目录下解压缩文件
f 刷新压缩文件中的文件
i[par]=<str> 在压缩包中查找指定字符串
k 锁住压缩包
l[t,b] 列出压缩包的内容[t(technical)详细列表,b(bare)简单列表]
m[f] 向压缩包里移动内容[f(files only)只移动文件]
p 在标准输出上打印文件内容
r 修复压缩包
rc 修复丢失卷
rn 重命名压缩的文件
rr[N] 添加数据恢复记录
rv[N] 创建恢复卷
s[name|-] 将压缩包转换为自解压文件,或从自解压文件转换为压缩包
t 测试压缩文件
u 更新压缩包中的文件
v[t,b] 列出压缩包中文件(冗长型)[t(technical)详细列表,b(bare)简单列表]
x 以全路径方式解压文件
<Switches>
- 停止switches扫描
ad 在目的路径后添加压缩文件名
ag[format] 用当前日期生成压缩文件名
ap<path> 设置压缩包内部的路径
as 同步压缩内容
av 设置授权认证(注册版功能)
av- 禁用授权认证检查
c- 禁止内容显示
cfg- 不读取设置
cl 将名称转换为小写
cu 将名称转换为大写
df 在压缩完成后删除源文件
dh 打开共享文件
ds 对于固实压缩包,禁用名称排序
e<attr> 设置文件不包含的属性
ed 不添加空目录
en 不设置‘压缩文件尾标志’块
ep 在名称中去掉路径
ep1 在名称中去掉基本路径
ep2 展开全路径
f 刷新文件
hp[password] 对文件数据和文件头都进行加密
idp 禁用百分比显示
ierr 给标准错误输出发送所有信息
ilog[name] 生成错误日志文件(注册版功能)
inul 禁用所有信息
isnd 启用声效
k 锁住压缩包
kb 保留破损的解压文件
m<0..5> 设置压缩率(0-存储...3-默认...5-最大)
mc<par> 设置高级压缩参数
md<size> 以KB显示大小(64,128,256,512,1024,2048,4096 或者A-G)
ms[ext;ext] 指定存储的文件类型
o+ 覆盖已存在文件
o- 不覆盖已存在文件
ol 将符号链接保存为链接而不是文件
ow 保存或恢复文件属主/组
p[password] 设置密码
p- 不查询密码
r 对子目录内容循环
r0 只对通配符进行子目录内容循环
rr[N] 添加数据恢复记录
rv[N] 创建恢复卷
s[<N>,v[-],e] 创建固实压缩包
s- 禁用固实压缩
sfx[name] 创建自解压压缩包
t 压缩后进行解压测试
ta<date> 处理在<date>(YYYYMMDDHHMMSS格式)日期后修改的文件
tb<date> 处理在<date>(YYYYMMDDHHMMSS格式)日期前修改的文件
tk 保留初始压缩时间
tl 设置压缩时间为最新文件的时间
tn<time> 处理在<time>时间后修改的文件
to<time> 处理在<time>时间前修改的文件
ts<m,c,a>[N] 保存或恢复文件时间(修改,创建,访问)
u 更新文件
v 以自动分卷大小分卷压缩,或列出所有分卷
v<size>[k,b] 以<size>*1000大小分卷压缩[k-*1024, b-*1]
ver[n] 文件版本控制
vn 使用旧的分卷命名方式
vp 每次分卷前暂停
w<path> 设置工作目录
x<file> 排除指定文件
x@ 从标准输入中读取要排除的文件名
x@<list> 排除列表文件中指定的文件
y 对所有问题均回复yes
z<file> 从文件中读取压缩包内容

用ubuntu自带的新立得软件包安装ark软件,搜索ark,然后选中就行了,会自动安装附带的10多个库文 件。安装完ark,会在菜单的附件中找到,你会发现ark其实已经设计成为支持rar,因为在新建打开等操作中都可以选择rar格式,不过只是写了出来, 不是 真正的支持。将刚才解压缩的rar for linux的文件中的四个可执行文件:default.sfx,rar,rar_static, unrar,复制到 /usr/local/bin 目录下。


rar常用命令主要有
a 添加文件到操作文档
例:rar a test.rar file1.txt 若test.rar文件不存在,则打包file1.txt文件成test.rar
 

   例:rar a test.rar file2.txt 若test.rar文件已经存在,则添加file2.txt文件到test.rar中
    (这样test.rar中就有两个文件了)
    注,如果操作文档中已有某文件的一份拷贝,则a命令更新该文件,对目录也可以进行操作
   例:rar a test.rar dir1

c 对操作文档添加说明注释
   rar c test.rar
    (会出现Reading comment from stdin字样,然后输入一行或多行注释,以ctrl+d结束)
    cf 添加文件注释,类似上面的c,不过这个是对压缩文档中每个文件进行注释

    cw 将文档注释写入文件
    例:rar cw test.rar comment.txt

d 从文档中删除文件
    例:rar d test.rar file1.txt

e 将文件解压到当前目录
   例:rar e test.rar
    注:用e解压的话,不仅原来的file1.txt和file2.txt被解压到当前目录,就连dir1里面的所有文件
    也被解压到当前目录下,不能保持压缩前的目录结构,如果想保持压缩前的目录结构,用x解压

k 锁定文档
   例:rar k test.rar 锁定文档后,该文档就无法进行任何更新操作了

r 修复文档
   例:rar r test.rar
     当rar文件有问题时,可以尝试用该命令进行修复(鬼知道有多少用)

s 转换文档成自解压文档
   例:rar s test.rar
    会生成一个test.sfx的可执行文档,运行它的效果就相当于rar x test.rar,
    适合于向没有rar的用户传输文件

t 检测文档
   例:rar t test.rar
    检测test.rar的完整性,一般压缩完大型文件准备传输前最好用这个命令来确保文件的正确性

x 带路径解压文档中内容到当前目录
   例:rar x test.rar
    这样解压的话,dir1就会保持原来的目录结构
本系列教程版权归G客所有,请注明出处:G客园www.gisblogs.net
以上就是rar的常用 命令,一个rar操作只能有一个命令,而选项却可以有多个。
————————————————————————
rar选项有很多,在此无法一一说明,只示范经常使用的几个

cl 将文件名转换为小写
cu 将文件名转换为大写
   例:rar a -cl test.rar FILe.txt
     FILe.txt在添加进test.rar之后,变为file.txt

df 文档操作后删除源文件
    例:rar a -df test.rar file1.txt file2.txt dir1
     将file1.txt,file2.txt,dir1压缩到test.rar中之后,删除源文件

ed 不添加空目录
    例:rar a -ed test.rar dir1
     添加dir1到test.rar中时,不对空目录进行操作
     rar e -ed test.rar
     解压test.rar时,不生成空目录

k 锁定文件
   例:rar a -k test.rar file1.txt
    等价于rar a test.rar file1.txt
          rar k test.rar

m<0..5> 设定压缩比等级(0-存储,3-默认,5-最大)
   例:rar a -m0 test.rar dir1 dir2
    将dir1,dir2打包存储到test.rar,不进行实质上的压缩(速度奇快,适合于对无甚可压的文件进行操作
    比如avi,jpg等)
    rar a -m5 test.rar *.txt *.bmp
    将当前目录下的txt文件和bmp文件打包压缩到test.rar中,使用最大压缩比(最慢)

ms[ext;ext] 特定文件采用非压缩方式
   例:rar a -m5 -ms avi;jpg;jpeg test.rar /home
    将home目录下所有目录和文件归档到test.rar,采用最大压缩,但avi,jpg,jpeg文件不进行压缩
    (只是打包进test.rar,因为这些文件即使用最大压缩也压不了多少,不如直接打包节省时间)

o+ 覆盖已有文件
o- 不覆盖已有文件
   例:rar x -o- test.rar
    解压test.rar文件,但是如果碰到以存在的文件则不覆盖

ol 将符号链接以链接文件保存,而不是普通文件
ow 保存或者恢复文件所有者的信息(username,group)
这两个是*nix系统特有的命令,很容易理解吧
————————————————————————
p[password]   设定密码
   例:rar a test.rar *.txt -p prettygirl
    压缩文件设定密码为prettygirl,解压时无密码无法进行操作
    如果觉得明码密码太过暴露,可以使用
    rar a test.rar *.txt -p
    则rar程序会询问你要使用什么密码,不回显

s- 不使用固实压缩
    注,固实压缩就是压缩后文档内容不可变更的压缩方式,这和lock不一样。因为使用普通压缩
        要照顾以后的插入删除个别文件的需要,就要留下很多操作余地。而固实压缩则不可以对
        其内容进行任何更新,所以压缩比是最大的。

sfx[name] 创建自解压文件,这和先用a进行压缩,再用s转换效果是一样的。

t 压缩完毕后进行完整性检验
   例:rar a test.rar /home -t
    压缩完毕后进行检验,如果有问题则报错。

ta<date> 仅对data日期后文件进行操作
tb<date> 仅对data日期前文件进行操作
    注,date的格式为 YYYYMMDDHHMMSS 这样。

v<size>[k,b] 分卷压缩,每卷大小由后面的size指定
   例:rar a -v15000k -m0 test xvid-fn.avi
    对xvid-fn.avi进行打包存储,每卷大小15000k(这种格式在网上发布dvdrip时很流行)
    生成的文件名为test.part1.rar,test.part2.rar….(rar 3.20版)

x<file> 排除特定的文件
   例:rar x test.rar -x *.txt
    解压test.rar中除*.txt以外的文档
x@<list> 同上,不过这次所有排除的文件放在list文件列表中

y 所有操作均回答yes
   例如有时解压时每碰到相同文件就问是否覆盖(Y/N),加上-y就可以默认选择Yes,不再询问


#unrar l *.rar
或者
#unrar v *.rar

2.测试rar包是否能解压成功:
#unrar t *.rar

3.解压到当前文件夹:
#unrar e *.rar

4.解压到指定文件夹:
#unrar x *.rar /tmp

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值