Linux下常用的文件归档,压缩和解压缩命令

命令              常见后缀         程序所在目录

compress / uncompress     .Z   .tar.Z         /usr/bin

bzip2 / bunzip2          .bz  .bz2  .tbz  .tbz2           /bin

gzip / gunzip            .gz  .tar.gz  .tgz        /bin

zip / unzip           .zip            /usr/bin

tar

 

compress / uncompress

最初最简单的压缩指令,压缩后文件后缀名为 .Z

常见与早期类UNIX系统中,目前使用较少。compress -d 等同与uncompress(在许多版本的linux中,uncompress其实调用的是compress -d,而自己并不是一个真的程序)。

所有参数:

-d   解压

-c   输出压缩或解压的结果,并不删除原始文件。

-f    强迫写入档案,若目的档已经存在,则会被覆盖 (force)

-v    显示进度

-b    最大比特数(数字越大,压缩率越高,范围是 9-16 ,预设值是 16)

-V    显示版本信息

-r     递归压缩文件夹及其子文件

eg:

compress -vf foobar.bat     强制压缩并显示进度,若目标文档存在则覆盖(删除原始文件)

compress -dv foobar.bat.Z 解压并显示进度

compress -dc foobar.bat.Z 解压并显示解压内容

compress -b 12 foobar.dat 

compress -c foobar.bat > newName.bat.Z    将压缩后的资料输出后再导入指定名称压缩包

 

bzip2 / bunzip2

常用参数:

-c   输出压缩或解压的结果

-z   压缩

-d   解压(等同与bunzip2命令)

-k   保留原文件

-v   显示进度 

-f   强制执行,目标文件存在则覆盖 

-1 .. -9   压缩比的参数, -9 最佳, -1 最快

--fast     alias for -1
--best    alias for -9

eg:

bzip2 foo.bat  压缩foo.bat为foo.bat.bz2,并不保留原文件

bzip2 -zfk foo.txt  强制压缩,并保留源文件

bzip2 -zf -9 -c foo.txt > bar.txt.bz2  强制压缩,最大压缩率,更改名称并保留源文件

bzcat foobar.bz2  查看压缩包内容,而不解压

 

gzip / gunzip

gunzip甚至还可以去解其他压缩程序如 Compress 或 ZIP 压缩出来的文件,但并不赞同这样做。

常用参数同上(没有-k) 

 

 

zip -- 打包并压缩

其格式与windows中.zip格式完全一致,可通用,适合与windows通讯使用。

实用参数:

-d  删除(drop)

-g  添加(group)

-u  更新

-r  递归压缩

-t  测试有无损坏,不解压

-q  安静模式

*    包含系统文件和隐藏文件

eg:

zip -r all.zip foo.zip bar.bat /home/user1  压缩本目录下foo.zip、bar.bat和/home/user1/文件夹为all.zip

zip new1.zip my1*.doc      压缩my1*.doc为new1.zip,new1.zip 可简写成 new1,系统会自行默认 .zip扩展名。

zip -d new1.zip my18.doc   删除new1.zip中my18.doc

zip -g new1.zip my32.doc   往 new1.zip中加入my32.doc

zip -u new1.zip my2*.doc  更新new1.zip中my2*.doc

zip -r new2.zip mydir  压缩mydir目录为new2.zip

zip -q -r all.zip *      压缩本文件夹所有(包括系统文件和隐藏文件夹)

 

unzip -- 解压

zip只能打包压缩,unzip才是解压命令,实实在在的真正的程序。

常用参数(所指为更新内容):

-d    解压到制定目录

-v/l  查看压缩的文件,不解压

-f     更新已存在

-n    更新不存在

-u    全部

-o    直接覆盖,不询问

-fo   直接覆盖已存在

-uo  覆盖更新所有

-C    不计大小写

-L    一律将文件名转为小写 

-j   去除文件夹

eg:

unzip foo.zip  解压foo.zip到当前目录

unzip -n text.zip -d /tmp  解压test.zip到/tmp,仅更新不存在

unzip -j all.zip -d /tmp      加压all.zip到/tmp,去除文件夹

unzip onepackage.zip a*.doc  解压 onepackage.zip 内 a*.doc 的文件

 

tar -- 归档打包

参数:

-c  产生新文件(create);

-x  解压

-t   查看

注意,参数 c/x/t 仅能存在一个,不可同时存在

-z  gzip属性

-Z  compress属性

-j  bzip属性

-f   使用档名,注意,在 f 之后要立即接档名,不要再加参数。(我们可以将-f看成一个必加参数)

    tar -zcvfP tfile sfile  -- 错误 

    tar -zcvPf tfile sfile  -- 正确 

-u  更新某个文件

-r  增加某个文件

-p  使用原文件的原来属性(属性不会依据使用者而变)

-P  可以使用绝对路径来压缩

-N  比后面接的日期(yyyy/mm/dd)还要新的才会被打包进新建的文件中

--exclude file  在压缩的过程中,不要将 file 打包

 

eg:

tar -cf new1.tar my1*.doc  把所有 my1*.doc 的文件打包为 new1.tar

tar -rf new1.tar my2*.doc  向new1.tar中增加 my2*.doc

tar -uf new1.tar my18.doc   修改......

tar -tf new1.tar       列出... 

tar -xf new1.tar         解压... 

tar -zxvf onepackage.tar.gz  解压(传说中的神奇解压命令)

tar -zcvf /tmp/etc.tar.gz /etc  打包后,以 gzip 压缩 

tar -zxvf /tmp/etc.tar.gz etc/passwd  指定目录解压 

 

主要参考文章:

http://blog.sina.com.cn/s/blog_4fd24c7201000duj.html

http://www.linuxso.com/command/unzip.html 

http://www.douban.com/note/57861194/

notice:

本人linux小白一枚,这篇文章学习总结之用,谬误肯定有不少,路过的道友切莫盲信本文内容。若能指出错误,当然更是非常感谢!

 

 

转载于:https://www.cnblogs.com/misstime/archive/2013/06/07/3123773.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值