实验6Linux文件与文件系统的压缩与打包.docx

上传人:b****5 文档编号:5906521 上传时间:2023-01-02 格式:DOCX 页数:7 大小:19.60KB
下载 相关 举报
实验6Linux文件与文件系统的压缩与打包.docx_第1页
第1页 / 共7页
实验6Linux文件与文件系统的压缩与打包.docx_第2页
第2页 / 共7页
实验6Linux文件与文件系统的压缩与打包.docx_第3页
第3页 / 共7页
实验6Linux文件与文件系统的压缩与打包.docx_第4页
第4页 / 共7页
实验6Linux文件与文件系统的压缩与打包.docx_第5页
第5页 / 共7页
点击查看更多>>
下载资源
资源描述

实验6Linux文件与文件系统的压缩与打包.docx

《实验6Linux文件与文件系统的压缩与打包.docx》由会员分享,可在线阅读,更多相关《实验6Linux文件与文件系统的压缩与打包.docx(7页珍藏版)》请在冰豆网上搜索。

实验6Linux文件与文件系统的压缩与打包.docx

实验6Linux文件与文件系统的压缩与打包

实验六:

Linux文件与文件系统的压缩与打包

1实验目的

通过实验掌握Linux文件与文件系统的压缩与打包

2实验设备

硬件:

PC机一台

软件:

Windows98/XP/2000系统,VMwareWorkstation6.0,RedHatLinux

3实验内容

(1)compress

(2)gzipbzip2

(3)tar

4实验预习要求

仔细阅读参考书:

【1】鸟哥的Linux私房菜基础学习篇第三版,人民邮电出版社,鸟哥

【2】嵌入式Linux系统开发标准教程,人民邮电出版社,华清远见嵌入式培训中心

【3】嵌入式Linux应用程序开发标准教程,人民邮电出版社,华清远见嵌入式培训中心

关于Linux文件压缩与打包的部分。

5实验步骤

(1)根据实验重点内容测试。

6实验重点:

在Linux的环境中,压缩文件案的扩展名大多是:

*.tar,*.tar.gz,*.tgz,*.gz,*.Z,*.bz2,为什么会有这样的扩展名呢?

不是说Linux的扩展名没有什么作用吗?

这是因为Linux支持的压缩命令非常多,且不同的命令所用的压缩技术并不相同,当然彼此之间可能就无法相互压缩/解压缩文件案。

所以,当下载到某个压缩文件时,自然就需要知道该文件是由哪种压缩命令所制作出来的,好用来对照着解压缩啊!

也就是说,虽然Linux文件的属性基本上是与文件名没有绝对关系的,所以适当的扩展名还是必要的!

底下我们就列出几个常见的压缩文件的扩展名:

*.Zcompress程序压缩的文件;

*.gzgzip程序压缩的文件;

*.bz2bzip2程序压缩的文件;

*.tartar程序打包的数据,并没有压缩过;

*.tar.gztar程序打包的文件,其中并且经过gzip的压缩

*.tar.bz2tar程序打包的文件,其中并且经过bzip2的压缩

Linux上常见的压缩命令就是gzip和bzip2,至于compress已经不再流行了。

gzip是由GNU计划所开发出来的压缩命令,该命令已经取代了compress。

后来GNU又开发出bzip2这个压缩比更好的压缩命令!

不过,这些命令通常仅能针对一个文件来压缩和解压缩,如此一来,每次压缩和解压缩都要一大堆文件,比较麻烦?

此时,打包软件tar就显的很重要了!

这个tar可以将很多文件『打包』成为一个文件!

甚至是目录也可以这么玩。

不过,单纯的tar功能仅是『打包』而已,亦即是将很多文件集结成为一个文件,事实上,他并没有提供压缩的功能,后来,GNU计划中,将整个tar不压缩的功能结合在一起,如此一来提供使用者更方便并且更强大的压缩不打包功能!

compress

compress这个压缩命令是非常老旧的一款。

但gzip已经可以解开使用compress压缩的文件。

[root@localhost~]#compress[-rcv]文件或目录<==这里是压缩

[root@localhost~]#uncompress文件.Z<==这里是解压缩

选项与参数:

-r:

可以连同目录下的文件也同时压缩;

-c:

将压缩数据输出成为standardoutput(输出到屏幕)

-v:

可以显示压缩后的文件信息以及压缩过程中的一些文件名变化。

范例一:

将/etc/man.config复制到/tmp,并加以压缩

[root@localhost~]#cd/tmp

[root@localhosttmp]#cp/etc/man.config.

[root@localhosttmp]#compress-vman.config

man.config:

--replacedwithman.config.ZCompression:

41.86%

[root@localhosttmp]#ls-l/etc/man.config/tmp/man*

-rw-r--r--1rootroot4617Jan62007/etc/man.config<==原有文件

-rw-r--r--1rootroot2684Nov1017:

14/tmp/man.config.Z<==经过压缩的文件!

可以看出,复制到/tmp的man.config不见了!

因为这个文件被压缩成为man.config.Z。

也就是说,在默认的情况中,被compress压缩的源文件会不见,而压缩文件会被建立起来,而且扩展名会是*.Z。

从上面可以伤处,文件由原本的4617bytes降低到2684bytes左右,确实有减少!

解压缩方式

范例二:

将刚刚的压缩文件解开

[root@localhosttmp]#uncompressman.config.Z

[root@localhosttmp]#llman*

-rw-r--r--1rootroot4617Nov1017:

14man.config

解压缩直接用uncompress即可!

解压缩完毕后该文件就自动的还原了!

不过,那个压缩文件却又不存在了。

如果想要保留源文件且又要建立压缩文件?

可以使用-c的语法!

范例三:

将man.config压缩成另外一个文件来备份

[root@localhosttmp]#compress-cman.config>man.config.back.Z

[root@localhosttmp]#llman*

-rw-r--r--1rootroot4617Nov1017:

14man.config

-rw-r--r--1rootroot2684Nov1017:

24man.config.back.Z

这个-c的选项会将压缩过程的数据输出到屏幕上,而不是写入成为*.Z的压缩文件。

所以,可以通过数据流重定向的方法将数据输出成为另一个文件名。

 

compress已经很少人在使用了,因为这个程序无法解开*.gz的文件,而gzip则可以解开*.Z的文件。

gzip,zcat

gzip可以说是应用度最广的压缩命令了!

目前gzip可以解开compress,zip和gzip等软件所压缩的文件。

至于gzip所建立的压缩文件为*.gz的文件名!

语法如下:

[root@localhost~]#gzip[-cdtv#]文件名

[root@localhost~]#zcat文件名.gz

选项与参数:

-c:

将压缩的数据输出到屏幕上,可通过数据流重定向来处理;

-d:

解压缩的参数;

-t:

可以用来检验一个压缩文件的一致性,看看文件有无错误;

-v:

可以显示出原文件/压缩文件案的压缩比等信息;

-#:

压缩等级,-1最快,但是压缩比最差、-9最慢,但是压缩比最好!

默认是-6

范例一:

将/etc/man.config复制到/tmp,并且以gzip压缩

[root@localhost~]#cd/tmp

[root@localhosttmp]#cp/etc/man.config.

[root@localhosttmp]#gzip-vman.config

man.config:

56.1%--replacedwithman.config.gz

[root@localhosttmp]#ll/etc/man.config/tmp/man*

-rw-r--r--1rootroot4617Jan62007/etc/man.config

-rw-r--r--1rootroot2684Nov1017:

24/tmp/man.config.back.Z

-rw-r--r--1rootroot2057Nov1017:

14/tmp/man.config.gz<==gzip压缩比较佳

与compress类似的,当使用gzip进行压缩时,在默认的状态下原本的文件会被压缩成为.gz的文件名,源文件就不再存在了。

同时可以发现,由于gzip的压缩比要比compress好的多,所以建议使用gzip!

此外,使用gzip压缩的文件在Windows系统中可以被WinRAR这个软件解压缩。

相关例子如下:

范例二:

由于man.config是文本文件,请将范例一的压缩文件的内容读出来!

[root@localhosttmp]#zcatman.config.gz

由于man.config这个原本的文件是是文本文件,因此可以使用zcat去读取。

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

范例三:

将范例一的文件解压缩

[root@localhosttmp]#gzip-dman.config.gz

也可以使用gunzip这个命令,但不好背!

范例四:

将范例三解开的man.config用最佳的压缩比压缩,并保留原本的文件

[root@localhosttmp]#gzip-9-cman.config>man.config.gz

其实gzip的压缩已经优化过了,所以虽然gzip提供1~9的压缩等级,不过使用默认的6就非常好用了!

cat可以读取纯文本文件,zcat则可以读取纯文本文件被压缩后的压缩文件!

由于gzip这个压缩命令主要想要用来取代compress的,所以不但compress的压缩文件案可以使用gzip来解开,同时zcat这个命令可以同时读取compress和gzip的压缩文件!

bzip2,bzcat

gzip是为了取代compress并提供更好的压缩比,那么bzip2则是为了取代gzip并提供更佳的压缩比。

bzip2的用法几乎与gzip相同:

[root@localhost~]#bzip2[-cdkzv#]文件名

[root@localhost~]#bzcat文件名.bz2

选项与参数:

-c:

将压缩的过程产生的数据输出到屏幕上!

-d:

解压缩

-k:

保留源文件,而不会删除原始的文件!

-z:

压缩的参数

-v:

可以显示出原文件/压缩文件的压缩比等信息;

-#:

与gzip同样的,都是在计算压缩比的参数,-9最佳,-1最快!

范例一:

将刚刚的/tmp/man.config用bzip2压缩

[root@localhosttmp]#bzip2-zman.config

此时man.config会变成man.config.bz2!

范例二:

将范例一的文件内容读出来!

[root@localhosttmp]#bzcatman.config.bz2

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

范例三:

将范例一的文件解压缩

[root@localhosttmp]#bzip2-dman.config.bz2

范例四:

将范例三解开的man.config用最佳的压缩比压缩,并保留原本的文件

[root@localhosttmp]#bzip2-9-cman.config>man.config.bz2

使用compress扩展名自动建立为.Z,使用gzip扩展名自动建立为.gz,使用bzip2则是自动的将扩展名设置为.bz2!

所以当使用具有压缩功能的bzip2-z时,那么man.config就会自动的变成了man.config.bz2这个文件名!

如果想要读取压缩文件的内容,是否一定要解开?

不需要!

可以使用简便的bzcat这个命令来读取内容即可!

例如上面的例子中,可以使用bzcatman.config.bz2来读取数据而不需要解开!

此外,当要解开一个压缩文件时,这个文件的名称为.bz,.bz2,.tbz,.tbz2等等,那么就可以尝试使用bzip2来解!

也可以使用bunzip2这个命令来取代bzip2-d。

打包命令:

tar

前面的命令大多仅能针对单一文件来进行压缩,虽然gzip和bzip2也能够针对目录来进行压缩,不过,这两个命令对目录的压缩指的是将目录内的所有文件"分别"进行压缩的操作!

而不像在Windows的系统,可以使用类似WinRAR这一类的压缩软件来将好多数据打包成一个文件。

这种将多个文件或目录包成一个大文件的命令功能,即打包命令!

tar可以将多个目录或文件打包成一个大文件,同时还可以通过gzip/bzip2的支持,将该文件同时进行压缩!

由于tar的使用太广泛了,目前Windows的WinRAR也支持.tar.gz文件名的解压缩。

tar的选项参数非常多!

常用的参数如下:

[root@localhost~]#tar[-j|-z][cv][-f建立的文件名]filename.<=打包不压缩

[root@localhost~]#tar[-j|-z][tv][-f建立的文件名]<==察看文件名

[root@localhost~]#tar[-j|-z][xv][-f建立的文件名][-C目录]<==解压缩

选项与参数:

-c:

建立打包文件,可搭配-v来察看过程中被打包的文件名(filename)

-t:

察看打包文件的内容含有哪些文件名,重点在察看文件名;

-x:

解打包或解压缩的功能,可以搭配-C(大写)在特定目录解开

特别需要注意的是,-c,-t,-x不可同时出现在一串命令列中。

-j:

通过bzip2的支持进行压缩/解压缩:

此时文件名最好为*.tar.bz2

-z:

通过gzip的支持进行压缩/解压缩:

此时文件名最好为*.tar.gz

-v:

在压缩/解压缩的过程中,将正在处理的文件名显示出来!

-ffilename:

-f后面接要被处理的文件名!

建议-f单独写一个选项!

-C目录:

这个选项用在解压缩,若要在特定目录解压缩,可以使用这个选项。

--exclude=FILE:

在压缩的过程中,不要将FILE打包!

常用的tar组合命令:

压缩:

tar-jcv-ffilename.tar.bz2要被压缩的文件或目录名称

查询:

tar-jtv-ffilename.tar.bz2

解压缩:

tar-jxv-ffilename.tar.bz2-C欲解压缩的目录

这里的filename.tar.bz2是我们自己取的文件名,tar并不会主动的产生建立的文件名!

需要我们自定义!

所以扩展名就显的很重要了!

如果不加[-j|-z]的话,文件名最好取为*.tar即可。

如果是-j选项,代表有bzip2的支持,因此文件名最好就取为*.tar.bz2,因为bzip2会产生.bz2的扩展名!

如果是加上了-z的gzip的支持,那文件名最好取为*.tar.gz!

另外,由于-ffilename是紧接在一起的,过去常会写成–jcvffilename也可以。

建议-ffilename与其他选项独立出来,会比较不容易发生问题。

使用tar加入-j或-z的参数备份/etc/目录

[root@localhost~]#tar-zcv-f/root/etc.tar.gz/etc

由于加上-v这个选项,因此正在操作中的文件名就会显示在屏幕上。

[root@localhost~]#tar-jcv-f/root/etc.tar.bz2/etc

[root@localhost~]#ll/root/etc*

-rw-r--r--1rootroot8740252Nov1523:

07/root/etc.tar.bz2

-rw-r--r--1rootroot13010999Nov1523:

01/root/etc.tar.gz

可见bzip2的压缩效果比gzip好。

查看打包文件的文件名:

[root@localhost~]#tar-jtv-f/root/etc.tar.bz2

将备份的数据解压缩,并考虑特定目录的解压缩动作(-C选项的应用)

一般,该打包文件会“在本目录下进行解压缩”!

要指定欲解开的目录,可以使用-C这个选项:

[root@localhost~]#tar-jxv-f/root/etc.tar.bz2-C/tmp

打包某目录,但不包含该目录下的某些文件的用法:

假设想要打包/etc//root这几个重要的目录,但却不想要打包/root/etc*开头的文件!

而且假设这个新的打包文件要放置成为/root/system.tar.bz2,此时我们可以通过--exclude:

[root@localhost~]#tar-jcv-f/root/system.tar.bz2--exclude=/root/etc*\

>--exclude=/root/system.tar.bz2/etc/root

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1