压缩解压缩

*.Z compress程序压缩的文件
*.bz2: bzip2程序压缩的文件
*.gz:gzip程序压缩的文件
*.tar:tar程序打包的数据,并没有压缩
*.tar.gz:tar程序打包的文件,并且经过gzip的压缩

compress命令已经过时,gzip来取代它。另外还有压缩比更好的压缩命令bzip2。压缩命令通常只能针对一个文件来

压缩和节压缩,如此一来,每次压缩和解压缩都有一大堆文件,很麻烦,打包软件可以解决这个问题。


gzip,zcat

-c :将压缩的资料输出到萤幕上,可透过资料流重导向来处理;
-d :解压缩的参数;
-t :可以用来检验一个压缩档的一致性~看看文件有无错误(这个命令好像用不了);
-# :压缩等级,-1 最快,但是压缩比最差、-9 最慢,但是压缩比最好!预设是 -6 ~
-V :版本。显示版本号和编译选项后退出

例如:
gzip man.config
此时 man.config 会变成 man.config.gz !

zcat man.config.gz
此时萤幕上会显示 man.config.gz 解压缩之后的文件内容!


gzip -d man.config.gz
文件解压缩


gzip -9c man.config > man.config.gz
man.config 用最佳的压缩比压缩,并保留原本的档案
-c,在压缩时,会保留原理的文档,如果没有-c,压缩后,原来的文件就消失了。

gzip 是用来压缩与解压缩附档名为 *.gz 的指令!所以看到 *.gz 的档案时,就应该要知道他是经由 gzip 这个程

序压缩的呦。至于 zcat 则是用来读取压缩文件数据内容的指令!假如我们刚刚压缩的档案是一个文字文件, 那么

你还记得如何读取文字文件吗?!没错!就是使用 cat ,那么读取压缩档呢?呵呵!就是使用 zcat ?!由于 gzip

这个压缩指令主要想要用来取代 compress 的,所以 compress 的压缩档案也可以使用 gzip 来解开喔!同时,

zcat 这个指令可以同时读取 compress 与 gzip 的压缩档呦!


bzip2
-c :将压缩的资料输出到萤幕上,可透过资料流重导向来处理;
-d :解压缩的参数;
-# :压缩等级,-1 最快,但是压缩比最差、-9 最慢,但是压缩比最好!预设是 -6 ~
-V :版本。显示版本号和编译选项后退出
-z :压缩的参数(不写,表示默认压缩)

bzcat 查看bzip2压缩后的文件


tar
tar [-cxtzjvfpPN] 文件与目录 ....
参数:
-c :建立一个新的归档文件(create的意思)
-x :解开一个压缩文件的参数指令
-t :查看tarfile里面的文件
特别注意,在参数的下达中,c/x/t仅能存在一个!不可同时存在!
因为不可能同时压缩与解压缩。
-z :是否同时具有gzip的属性,亦即是否需要用gzip压缩
-j :是否同时具有bzip2的属性,亦即是否需要用bzip2压缩
-v :压缩的过程中显示文件,这个常用,但不建议用在背景执行过程
-f :使用档名,请留意,在f之后要立即接档名,不要再加参数
例如使用『 tar -zcvfP tfile sfile』就是错误的写法,要写成
『 tar -zcvPf tfile sfile』才对
-p :使用原文件的原来属性(属性不会依据使用者而变)
-P :可以使用绝对路径来压缩
-N :比后面接的日期(yyyy/mm/dd)还要新的才会被打包进新建的文件中
--exclude FILE:在压缩的过程中,不要将FILE打包

例子:
将整个/etc目录下的文件全部打包成为/tmp/etc.tar
tar -cvf /tmp/etc.tar /etc (如果没有v参数,则什么也不显示)
tar -zcvf /tmp/etc.tar.gz /etc<==打包后,以gzip压缩
tar -jcvf /tmp/etc.tar.bz2 /etc<==打包后,以bzip2压缩

特别注意,在参数f之后的文件档名是自己取的,我们习惯上都用.tar来作为辨识
如果加z参数,则以.tar.gz或.tgz来代表gzip压缩过的tar file
如果加j参数,则以.tar.bz2来作为附档名

查阅上述/tmp/etc.tar.gz文件内有哪些文件
tar -ztvf /tmp/etc.tar.gz
由于我们使用gzip压缩,所以要查阅该tar file内的文件时,
就得要加上z这个参数了,这很重要的


tar -zxvf /tmp/etc.tar.gz
上面的命令是把,压缩文档解压到当前工作目录
(使用tar时,一定要加-f指定压缩的文档名字)


要备份/home, /etc,但不要/home/dmtsai
tar --exclude /home/dmtsai -zcvf myfile.tar.gz /home/* /etc


将/etc/内的所有文件备份下来,并且保存其权限
tar -zcvpf /tmp/etc.tar.gz /etc
这个-p的属性是很重要的,尤其是当您要保留原本文件的属性时

范例六:在/home当中,比 2005/06/01新的文件才备份
tar -N "2005/06/01" -zcvf home.tar.gz /home


注意:假如以绝对路径压缩,那么在解压缩时就会有可能把相同目录下的文件夹给覆盖掉。因此,如果是以绝对路径

来建立打包文件,你们tar将会自动将/去掉。这是为了安全所做的默认设置。如果想以绝对路径来建立打包文件,就

加入-P参数。


1.zip
zip -r myfile.zip ./*
将当前目录下的所有文件和文件夹全部压缩成myfile.zip文件,-r表示递归压缩子目录下所有文件.
2.unzip
unzip -o -d /home/sunny myfile.zip
把myfile.zip文件解压到 /home/sunny/
-o:不提示的情况下覆盖文件;
-d:-d /home/sunny 指明将文件解压缩到/home/sunny目录下;
3.其他
zip -d myfile.zip smart.txt
删除压缩文件中smart.txt文件
zip -m myfile.zip ./rpm_info.txt
向压缩文件中myfile.zip中添加rpm_info.txt文件

要使用 zip 来压缩文件,在 shell 提示下键入下面的命令:
zip -r filename.zip filesdir

在这个例子里,filename.zip 代表你创建的文件,filesdir 代表你想放置新 zip 文件的目录。-r 选项指定你想递

归地(recursively)包括所有包括在 filesdir 目录中的文件。
要抽取 zip 文件的内容,键入以下命令:
unzip filename.zip

你可以使用 zip 命令同时处理多个文件和目录,方法是将它们逐一列出,并用空格间隔:
zip -r filename.zip file1 file2 file3 /usr/work/school

上面的命令把 file1、file2、 file3、以及 /usr/work/school 目录的内容(假设这个目录存在)压缩起来,然后

放入 filename.zip 文件中。


例1:将压缩文件text.zip在当前目录下解压缩。

$ unzip text.zip

例2:将压缩文件text.zip在指定目录/tmp下解压缩,如果已有相同的文件存在,要求unzip命令不覆盖原先的文件。

$ unzip -n text.zip -d /tmp


打包并压缩的文件叫 tarball
打包但没有压缩的文件叫 tarfile
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值