实验6Linux文件与文件系统的压缩与打包Word文档格式.docx
- 文档编号:18895599
- 上传时间:2023-01-02
- 格式:DOCX
- 页数:7
- 大小:19.60KB
实验6Linux文件与文件系统的压缩与打包Word文档格式.docx
《实验6Linux文件与文件系统的压缩与打包Word文档格式.docx》由会员分享,可在线阅读,更多相关《实验6Linux文件与文件系统的压缩与打包Word文档格式.docx(7页珍藏版)》请在冰豆网上搜索。
*.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*
14man.config
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
将压缩的数据输出到屏幕上,可通过数据流重定向来处理;
-d:
解压缩的参数;
-t:
可以用来检验一个压缩文件的一致性,看看文件有无错误;
可以显示出原文件/压缩文件案的压缩比等信息;
-#:
压缩等级,-1最快,但是压缩比最差、-9最慢,但是压缩比最好!
默认是-6
将/etc/man.config复制到/tmp,并且以gzip压缩
[root@localhosttmp]#cp/etc/man.config.
[root@localhosttmp]#gzip-vman.config
56.1%--replacedwithman.config.gz
[root@localhosttmp]#ll/etc/man.config/tmp/man*
-rw-r--r--1rootroot4617Jan62007/etc/man.config
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
将压缩的过程产生的数据输出到屏幕上!
解压缩
-k:
保留源文件,而不会删除原始的文件!
-z:
压缩的参数
可以显示出原文件/压缩文件的压缩比等信息;
与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
[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目录]<
==解压缩
建立打包文件,可搭配-v来察看过程中被打包的文件名(filename)
察看打包文件的内容含有哪些文件名,重点在察看文件名;
-x:
解打包或解压缩的功能,可以搭配-C(大写)在特定目录解开
特别需要注意的是,-c,-t,-x不可同时出现在一串命令列中。
-j:
通过bzip2的支持进行压缩/解压缩:
此时文件名最好为*.tar.bz2
通过gzip的支持进行压缩/解压缩:
此时文件名最好为*.tar.gz
在压缩/解压缩的过程中,将正在处理的文件名显示出来!
-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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 Linux 文件 文件系统 压缩 打包