Linux下文件压缩与解压

Linux下最常用的打包程序就是tar了,使用tar程序打出来的包我们常称为tar包,tar包文件的命令通常都是以.tar结尾的。生成tar包后,就可以用其它的程序来进行压缩了,所以首先就来讲讲tar命令的基本用法
tar命令的选项有很多(man tar可以查看到),但常用的就那么几个选项,下面来举例说明一下:

 

# tar -cf all.tar *.jpg
这条命令是将所有.jpg的文件打成一个名为all.tar的包。-c是表示产生新的包,-f指定包的文件名

 

 

# tar -rf all.tar *.gif
这条命令是将所有.gif的文件增加到all.tar的包里面去。-r是表示增加文件的意思

 

# tar -uf all.tar logo.gif
这条命令是更新原来tarall.tarlogo.gif文件,-u是表示更新文件的意思

 

# tar -tf all.tar
这条命令是列出all.tar包中所有文件,-t是列出文件的意思

 

# tar -xf all.tar
这条命令是解出all.tar包中所有文件,-x是解开的意思

 

# tar -zxf all.tar -C /home/xxx/Desktop
这条命令是解出all.tar包中所有文件至xxx用户的桌面,-C是指定解出文件的存放路径

 

以上就是tar的最基本的用法。为了方便用户在打包解包的同时可以压缩或解压文件,tar提供了一种特殊的功能。这就是tar可以在打包或解包的同时调用其它的压缩程序,比如调用gzipbzip2等。


1) tar调用gzip
gzipGNU组织开发的一个压缩程序,.gz结尾的文件就是gzip压缩的结果。与gzip相对的解压程序是gunziptar中使用-z这个参数来调用gzip。下面来举例说明一下:

 

# tar -czf all.tar.gz *.jpg
这条命令是将所有.jpg的文件打成一个tar包,并且将其用gzip压缩,生成一个gzip压缩过的包, 包名为all.tar.gz

 

# tar -xzf all.tar.gz
这条命令是将上面产生的包解开。

 


2) tar调用bzip2
bzip2是一个压缩能力更强的压缩程序,.bz2结尾的文件就是bzip2压缩的结果。与bzip2相对的解压程序是bunzip2tar中使用-j这个参数来调用gzip。下面来举例说明一下:

 

# tar -cjf all.tar.bz2 *.jpg
这条命令是将所有.jpg的文件打成一个tar包,并且将其用bzip2压缩,生成一个bzip2压缩过的包,包名为all.tar.bz2

 

# tar -xjf all.tar.bz2
这条命令是将上面产生的包解开。


3)tar调用compress
compress也是一个压缩程序,但是好象使用compress的人不如gzipbzip2的人多。.Z结尾的文件就是bzip2压缩的结果。与compress相对的解压程序是uncompresstar中使用-Z这个参数来调用gzip。下面来举例说明一下:

 

# tar -cZf all.tar.Z *.jpg
这条命令是将所有.jpg的文件打成一个tar包,并且将其用compress压缩,生成一个compress压缩过的包,包名为all.tar.Z

 

# tar -xZf all.tar.Z
这条命令是将上面产生的包解开

 

 

有了上面的知识,你应该可以解开多种压缩文件了,下面对于tar系列的压缩文件作一个小结:

 1)对于.tar结尾的文件 tar -xf all.tar
 2)对于.gz结尾的文件  gzip -d all.gz gunzip all.gz
  
 3)对于.tgz.tar.gz结尾的文件 tar -xzf all.tar.gz  tar -xzf all.tgz
  
 4)对于.bz2结尾的文件 bzip2 -d all.bz2 bunzip2 all.bz2
  
 5)对于tar.bz2结尾的文件  tar -xjf all.tar.bz2
  
 6)对于.Z结尾的文件  uncompress all.Z
  
 7)对于.tar.Z结尾的文件  tar -xZf all.tar.z

另外对于Window下的常见压缩文件.zip.rarLinux也有相应的方法来解压它们:

 

对于.zip
linux zip命令的基本用法是:

zip [参数] [打包后的文件名] [打包的目录路径]

linux zip命令参数列表:

-a 将文件转成ASCII模式
-F 尝试修复损坏的压缩文件
-h 显示帮助界面
-m 将文件压缩之后,删除源文件

-n 特定字符串 不压缩具有特定字尾字符串的文件
-o 将压缩文件内的所有文件的最新变动时间设为压缩时候的时间
-q 安静模式,在压缩的时候不显示指令的执行过程
-r 将指定的目录下的所有子目录以及文件一起处理
-S 包含系统文件和隐含文件(S是大写)
-t 日期 把压缩文件的最后修改日期设为指定的日期,日期格式为mmddyyyy

举例:

/home/Blinux/html/ 这个目录下所有文件和文件夹打包为当前目录下的html.zip

zip r html.zip /home/Blinux/html

上面的命令操作是将绝对地址的文件及文件夹进行压缩.以下给出压缩相对路径目录

比如目前在Bliux这个目录下,执行以下操作可以达到以上同样的效果.
zip r html.zip html

比如现在我的html目录下,我操作的zip压缩命令是
zip r html.zip *

以上是在安静模式下进行的,而且包含系统文件和隐含文件

===============================================================================
linux unzip命令的基本用法是:

unzip [-cflptuvz][-agCjLMnoqsVX][-P <密码>][.zip文件][文件][-d <目 录>][-x <文件>] 或 unzip [-Z]

补充说明:unzip.zip压缩文件的解压缩程序。

linux unzip命令参数列表:
-c 将解压缩的结果显示到屏幕上,并对字符做适当的转换。
-f 更新现有的文件。
-l 显示压缩文件内所包含的文件。
-p -c参数类似,会将解压缩的结果显示到屏幕上,但不会执行任何的转换。
-t 检查压缩文件是否正确。
-u -f参数类似,但是除了更新现有的文件外,也会将压缩文件中的其他文件解压缩到目录中。
-v 执行是时显示详细的信息。
-z 仅显示压缩文件的备注文字。
-a 对文本文件进行必要的字符转换。
-b 不要对文本文件进行字符转换。
-C 压缩文件中的文件名称区分大小写。
-j 不处理压缩文件中原有的目录路径。
-L 将压缩文件中的全部文件名改为小写。
-M 将输出结果送到more程序处理。
-n 解压缩时不要覆盖原有的文件。
-o 不必先询问用户,unzip执行后覆盖原有文件。
-P<密码使用zip的密码选项。
-q 执行时不显示任何信息。
-s 将文件名中的空白字符转换为底线字符。
-V 保留VMS的文件版本信息。
-X 解压缩时同时回存文件原来的UID/GID
 [.zip文件指定.zip压缩文件。
 [文件指定要处理.zip压缩文件中的哪些文件。
-d<目录指定文件解压缩后所要存储的目录。
-x<文件指定不要处理.zip压缩文件中的哪些文件。
-Z unzip -Z等于执行zipinfo指令

举例:

/home/Blinux/html.zip解压到当前目录
unzip html.zip

 

 

对于.rar

要在linux下处理.rar文件,需要安装RAR for Linux,可以从网上下载,但要记住,RAR for Linux不是免费的;然后安装:
# tar -xzpvf rarlinux-3.2.0.tar.gz
# cd rar
# make
这样就安装好了,安装后就有了rarunrar这两个程序,rar是压缩程序,unrar是解压程序。

它们的参数选项很多,这里只做简单介绍,依旧举例说明一下其用法:
  
# rar a all *.jpg
这条命令是将所有.jpg的文件压缩成一个rar包,名为all.rar,该程序会将.rar扩展名将自动附加到包名后。

# unrar e all.rar
这条命令是将all.rar中的所有文件解压出来

到此为至,我们已经介绍过linux下的targzipgunzipbzip2bunzip2compressuncompresszipunziprarunrar等程式,你应该已经能够使用它们对.tar.gz.tar.gz.tgz.bz2.tar.bz2.Z.tar.Z.zip.rar10种压缩文件进行解压了

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值