本文共 8230 字,大约阅读时间需要 27 分钟。
我的十大IT杰出博客参赛主页是:,请各位支持我,给我投上宝贵一票,谢谢!
随着Linux开源系统平台的不断发展,越来越多的开源软件可以提供给Linux用户使用,这样,也使得更多的文件“吞噬”着硬盘空间。作为一种优秀的开源操作系统,如何高效地管理系统中的软件是一个很重要的问题。Linux提供了多种方法,用户可以根据实际情况方便地对软件进行管理。比如,它提供了对文件打包的功能,用户可以使用其将若干文件或目录打成一个软件包;同时,它也提供了多种文件压缩工具,使得用户可以对某些文件进行压缩,以减小文件占用的硬盘空间或方便网络传输。本文将通过例子来介绍如何合理地利用这些方法来管理Linux系统中的软件。(更多全文请见:)
zip程序位于/usr/bin目录中,可将文件压缩成.zip文件以节省硬盘空间,而当需要的时候又可将压缩文件解开。unzip命令用于将压缩文件解压。
(1)用zip命令压缩文件或文件夹
在Linux下输入man zip,系统显示zip的帮助文档。
zip命令的使用形式为:zip [选项] 压缩后文件名 待压缩文件或文件夹。
其中:参数选项表明要完成的操作类型,压缩后的文件名是某个合法的文件名,其后缀为zip,待压缩文件或文件夹指明须要进行压缩的文件或文件夹,可以是多个文件或文件夹。zip命令的参数选项如下:
注意:使用zip命令可以将许多文件压缩成一个文件,这与gzip是有区别的。
下面给出使用该命令压缩文件或文件夹的例子:
//显示当前目录下所有文件和文件夹#ll总用量 9drwx------ 1 root root 4096 10月 15 19:45 gzipdrwx------ 1 root root 0 10月 12 21:25 smart-rwx------ 1 root root 26 10月 13 22:51 smart.txt-rwx------ 1 root root 226 10月 13 22:51 tar_create.txt-rwx------ 1 root root 7433 10月 13 22:51 tar.txtdrwx------ 1 root root 4096 10月 13 22:13 xplns //将当前目录下的所有文件和文件夹全部压缩成gong.zip压缩文件,-r表示递归压缩子目录下所有文件# zip -r gong.zip ./*adding: gzip/ (stored 0%)adding: gzip/gong.tar.gz (stored 0%)adding: smart/ (stored 0%)adding: smart/smartsuite-2.1-2.i386.rpm (deflated 5%)adding: smart.txt (stored 0%)adding: tar_create.txt (deflated 44%)adding: tar.txt (deflated 68%)adding: xplns/ (stored 0%)adding: xplns/xplns-cat-3.3.1-1.i386.rpm.gz (deflated 0%)adding: xplns/xplns-elm-3.3.1-1.i386.rpm.gz (deflated 0%)adding: xplns/xplns-img-3.3.1-1.i386.rpm.gz (deflated 0%) //再显示当前目录下所有文件,可以发现压缩文件gong.zip已经生成#ll总用量 1621-rwx------1 root root 3301222 10月 15 19:49 gong.zipdrwx------1 root root 4096 10月 15 19:45 gzipdrwx------1 root root 0 10月 12 21:25 smart-rwx------1 root root 26 10月 13 22:51 smart.txt-rwx------1 root root 226 10月 13 22:51 tar_create.txt-rwx------1 root root 7433 10月 13 22:51 tar.txtdrwx------1 root root 4096 10月 13 22:13 xplns
用带-v参数选项可以查看zip文件的内容,这点类似于带t参数选项的tar命令。只不过前者用于显示压缩的zip文件的内容,后者用于显示tar文件的内容。与带t参数选项的tar命令类似,带v参数选项的zip命令实际上并不解压缩文件。用带-v参数选项的zip命令举例如下:
//显示当前目录下所有文件,从显示结果可以看出,当前目录下只有一个gong.zip文件# ll 总用量 1612-rwx------ 1 root root 3301222 10月 15 19:49 gong.zip //查看gong.zip文件的内容# zip -v gong.zipzip info: local extra (21 bytes) != central extra (13 bytes): gzip/zip info: local extra (21 bytes) != central extra (13 bytes): gzip/gong.tar.gzzip info: local extra (21 bytes) != central extra (13 bytes): smart/zip info: local extra (21 bytes) != central extra (13 bytes): smart.txtzip info: local extra (21 bytes) != central extra (13 bytes): tar_create.txtzip info: local extra (21 bytes) != central extra (13 bytes): tar.txtzip info: local extra (21 bytes) != central extra (13 bytes): xplns/
用带-d参数选项的zip命令可以从zip压缩文件中删除某个文件,而使用带-m的zip命令可以向zip压缩文件添加某个文件,对带-d和-m参数选项的zip命令举例如下:
# zip -v gong.zip //显示压缩文件gong.zip的文件内容zip info: local extra (21 bytes) != central extra (13 bytes): free.txtzip info: local extra (21 bytes) != central extra (13 bytes): smart.txtzip info: local extra (21 bytes) != central extra (13 bytes): tar_create.txtzip info: local extra (21 bytes) != central extra (13 bytes): tar.txt //删除压缩文件中smart.txt文件# zip -d gong.zip smart.txtdeleting: smart.txt //再显示压缩文件内容,可以发现文件删除成功# zip -v gong.zipzip info: local extra (21 bytes) != central extra (13 bytes): free.txtzip info: local extra (21 bytes) != central extra (13 bytes): tar_create.txtzip info: local extra (21 bytes) != central extra (13 bytes): tar.txt //向压缩文件中gong.zip中添加rpm_info.txt文件# zip -m gong.zip ./rpm_info.txt adding: rpm_info.txt (deflated 75%) //再显示压缩文件内容,可以发现文件添加成功# zip -v gong.zipzip info: local extra (21 bytes) != central extra (13 bytes): free.txtzip info: local extra (21 bytes) != central extra (13 bytes): tar_create.txtzip info: local extra (21 bytes) != central extra (13 bytes): tar.txtzip info: local extra (21 bytes) != central extra (13 bytes): rpm_info.txt
(2)用unzip命令解压缩文件
unzip命令用于扩展名为zip的压缩文件的解压缩,同时,Windows下用压缩软件Winzip压缩的文件在Linux系统下也可以用unzip命令解压缩。unzip命令的语法如下:
unzip [参数选项] 压缩文件名.zip。
所有参数选项如下:
unzip命令的常用用法有:
简单解压缩文件:将压缩文件解压缩到当前目录下。
//显示当前目录下所有文件,从显示结果可以发现当前目录下只有一个文件gong.zip# ll总用量 7-rwx------ 1 root root 13512 10月 15 20:44 gong.zip //将gong.zip解压缩到当前目录# unzip gong.zipArchive: gong.zipinflating: free.txtinflating: tar_create.txtinflating: tar.txtinflating: rpm_info.txt //再显示当前目录下所有文件,从显示结果可以发现,gong.zip压缩文件中所有文件已经成功解压缩到当前目录# ll总用量 32-rwx------ 1 root root 230 10月 15 21:03 free.txt-rwx------ 1 root root 13512 10月 15 20:44 gong.zip-rwx------ 1 root root 40833 10月 15 21:03 rpm_info.txt-rwx------ 1 root root 226 10月 15 21:03 tar_create.txt-rwx------ 1 root root 7433 10月 15 21:03 tar.txt
解压缩文件到指定目录:将压缩文件解压缩到指定的目录下,如果已有相同的文件存在,unzip命令不覆盖原来的文件。
bzip2是一个无损压缩软件,具有高质量的数据压缩能力。它能将文件压缩到原来的10%到15%,而且压缩速度和解压缩速度都非常高,因此在Linux下得到广泛使用。
bzip2从命令行读入文件名和参数,每个文件都被名为“原始文件名.bz2”的压缩文件替换。每个压缩文件具有与原文件相同的修改时间和权限,如果可能的话,还具有相同的属主,因此在解压缩时这些特性将正确地恢复。
(1)bzip2命令参数选项
(2)用bzip2命令压缩文件
//显示当前目录下所有文件# ll总用量 32-rwx------ 1 root root 230 10月 15 22:06 free.txt-rwx------ 1 root root 13512 10月 15 22:06 gong.zip-rwx------ 1 root root 40833 10月 15 22:06 rpm_info.txt-rwx------ 1 root root 226 10月 15 22:06 tar_create.txt-rwx------ 1 root root 7433 10月 15 22:06 tar.txt //用bzip2命令压缩当前目录下所有文件,用bunzip2 -z * 将获得相同的效果#bzip2 * //再显示当前目录下所有文件,从显示结果可以看出,所有文件都压缩成了原文件名加bz2后缀的形式# ll总用量 15-rwx------ 1 root root 157 10月 15 22:06 free.txt.bz2-rwx------ 1 root root 13824 10月 15 22:06 gong.zip.bz2-rwx------ 1 root root 9366 10月 15 22:06 rpm_info.txt.bz2-rwx------ 1 root root 165 10月 15 22:06 tar_create.txt.bz2-rwx------ 1 root root 2326 10月 15 22:06 tar.txt.bz2
(3)用bunzip2命令解压缩文件
//显示当前目录下所有文件# ll总用量 15-rwx------ 1 root root 230 10月 15 22:17 free.txt-rwx------ 1 root root 13824 10月 15 22:17 gong.zip.bz2-rwx------ 1 root root 9366 10月 15 22:17 rpm_info.txt.bz2-rwx------ 1 root root 165 10月 15 22:17 tar_create.txt.bz2-rwx------ 1 root root 2326 10月 15 22:17 tar.txt.bz2 //用bunzip2命令解压缩当前目录下所有文件,其中有一个文件free.txt不是以bz2为后缀//从显示结果可以看出,对free.txt文件解压缩时报错# bunzip2 *bunzip2: Can't guess original name for free.txt -- using free.txt.outbunzip2: free.txt is not a bzip2 file. //再显示当前目录下所有文件,从显示结果可以看出,所有bz2文件都解压缩成功# ll总用量 32-rwx------ 1 root root 230 10月 15 22:17 free.txt-rwx------ 1 root root 13512 10月 15 22:18 gong.zip-rwx------ 1 root root 40833 10月 15 22:18 rpm_info.txt-rwx------ 1 root root 226 10月 15 22:18 tar_create.txt-rwx------ 1 root root 7433 10月 15 22:18 tar.txt