更新时间:2022-10-04 18:03:19
我的十大IT杰出博客参赛主页是:http://2010blog.51cto.com/1060257,请各位支持我,给我投上宝贵一票,谢谢!
随着Linux开源系统平台的不断发展,越来越多的开源软件可以提供给Linux用户使用,这样,也使得更多的文件“吞噬”着硬盘空间。作为一种优秀的开源操作系统,如何高效地管理系统中的软件是一个很重要的问题。Linux提供了多种方法,用户可以根据实际情况方便地对软件进行管理。比如,它提供了对文件打包的功能,用户可以使用其将若干文件或目录打成一个软件包;同时,它也提供了多种文件压缩工具,使得用户可以对某些文件进行压缩,以减小文件占用的硬盘空间或方便网络传输。本文将通过例子来介绍如何合理地利用这些方法来管理Linux系统中的软件。
TAR命令是在Linux下最常用的文件打包工具,可以将若干文件或若干目录下打包成一个文件,既有利于文件管理,也方便压缩和文件的网络传输。TAR可以为文件和目录创建档案。利用TAR,用户可以为某一特定文件创建档案(备份文件),也可以在档案中改变文件,或者向档案中加入新的文件。
1、TAR命令语法及参数选项
TAR命令使用语法如下:
tar [主选项+辅选项] 文件或者目录
其中,主选项是必需的,表明tar命令要完成的操作,辅选项是辅助使用的,可以有也可以没有。下面列出常用的主选项,并简要说明其功能。
每次使用tar命令时,上述8个命令参数选项必须选择一个,用以指明操作类型。
2、创建tar文件
创建一个tar文件要使用主参数选项c,并指明创建tar文件的文件名。下面假设当前目录下有smart和xplns两个子目录以及cpuinfo.txt,smart.txt,tar.txt ,tar_create.txt四个文件,smart目录下有smartsuite-2.1-2.i386.rpm文件,xplns目录下有xplns-cat-3.3.1-1.i386.rpm,xplns-elm-3.3.1-1.i386.rpm和xplns-img-3.3.1-1.i386.rpm三个文件。用ll –r命令显示当前目录下文件信息如下:
#ll -r ./* -rwx------1 root root 7433 10月 12 21:25 ./tar.txt -rwx------1 root root 226 10月 12 21:25 ./tar_create.txt -rwx------1 root root 26 10月 12 21:25 ./smart.txt -rwx------1 root root 26 10月 12 21:25 ./cpuinfo.txt ./xplns: 总用量 1613 -rwx------1 root root 793828 10月 12 21:26 xplns-img-3.3.1-1.i386.rpm -rwx------1 root root 572471 10月 12 21:26 xplns-elm-3.3.1-1.i386.rpm -rwx------1 root root 1933576 10月 12 21:26 xplns-cat-3.3.1-1.i386.rpm ./smart: 总用量 17 -rwx------1 root root 34475 10月 12 21:25 smartsuite-2.1-2.i386.rpm
若要在该目录下将所有文件打包成gong.tar文件,可以使用如下命令:
//参数c指明创建tar,参数f指明是创建文件,参数v指明显示处理详细过程 # tar cvf gong.tar ./* ./cpuinfo.txt ./smart/ ./smart/smartsuite-2.1-2.i386.rpm ./smart.txt ./tar_create.txt ./tar.txt ./xplns/ ./xplns/xplns-cat-3.3.1-1.i386.rpm ./xplns/xplns-elm-3.3.1-1.i386.rpm ./xplns/xplns-img-3.3.1-1.i386.rpm //显示当前目录下所有文件,从显示结果可以发现,当前目录下多了一个gong.tar文件,就是由刚才tar命令生成的 #ll 总用量 4927 -rwx------ 1 root root 3358720 10月 12 19:35 cpuinfo.txt -rwx------ 1 root root 6717440 10月 12 19:36 gong.tar drwx------ 1 root root 0 10月 8 21:37 smart -rwx------ 1 root root 26 10月 8 21:37 smart.txt -rwx------ 1 root root 226 10月 12 19:32 tar_create.txt -rwx------ 1 root root 7433 10月 12 17:13 tar.txt drwx------ 1 root root 4096 10月 12 19:34 xplns
3、显示tar文件内容
对于一个已存在的tar文件,用户可能想了解其内容是由哪些文件和目录打包而来的,这就要用带t参数的tar命令。例如对于上述产生的gong.tar文件,若欲显示其文件内容,可使用如下命令:
# tar tf gong.tar ./cpuinfo.txt ./smart/ ./smart/smartsuite-2.1-2.i386.rpm ./smart.txt ./tar_create.txt ./tar.txt ./xplns/ ./xplns/xplns-cat-3.3.1-1.i386.rpm ./xplns/xplns-elm-3.3.1-1.i386.rpm ./xplns/xplns-img-3.3.1-1.i386.rpm
4、向tar文件中添加一个文件
欲向已存在的一个tar文件中添加一个文件或目录,可以使用带-r主选项参数的tar命令。例如欲向上面所述产生的gong.tar文件中添加tar_t.txt文件,可以使用如下步骤:
(1)在文件gong.tar图标上右键单击鼠标,系统显示快捷菜单。
(2)单击【添加到压缩文件】菜单项,系统将显示【添加文件或文件夹】对话框,在对话框中输入欲加入的文件或文件夹,或者单击【浏览(B)】按钮选择某个文件或文件夹,若选中【仅添加新文件(N)】复选框,则当添加的文件或文件夹在tar文件中已经存在时,系统并不加入该文件或文件夹。单击【增加(A)】按钮即可完成添加工作。
5、从tar文件中取出文件
在已经存在的tar文件中解包,可以使用带主选项参数-x的tar命令实现。下面以gong.tar文件为例,说明带主选项参数-x的tar命令的用法。
//首先显示当前目录下文件列表,由显示结果可见,当前目录下只有一个文件gong.tar。 #ll 总用量 3280 -rwx------ 1 root root 6717440 10月 12 21:12 gong.tar //对当前目录下gong.tar文件解包 #tar –x gong.tar //再显示解包后当前目录下所有文件,由显示结果可以看出,tar文件中所有文件均已解出 #ll 总用量 4927 -rwx------ 1 root root 3358720 10月 12 21:13 cpuinfo.txt -rwx------ 1 root root 6717440 10月 12 21:12 gong.tar drwx------ 1 root root 0 10月 12 21:13 smart -rwx------ 1 root root 26 10月 12 21:13 smart.txt -rwx------ 1 root root 226 10月 12 21:13 tar_create.txt -rwx------ 1 root root 7433 10月 12 21:13 tar.txt drwx------ 1 root root 4096 10月 12 21:13 xplns
对文件进行压缩的目的有两个:一是可以减少存储空间,二是通过网络传输文件时,可以减少传输的网络开销。Linux下的压缩工具有很多,下面列出Linux下常用的压缩工具及其产生文件的后缀:
Linux下压缩工具中最常用的包括gzip、zip和bzip2三种,下面分别讲述这三种最常用的压缩工具。
gzip是Linux最常用的软件压缩工具,在Linux终端输入man gzip命令降显示gzip的帮助文档。
该命令的使用形式为:gzip [选项] 压缩或解压缩的文件名。
该命令的主要参数选项有:
(1)用gzip压缩文件:下面给出使用gzip命令压缩文件的例子:
//显示当前目录先所有文件 #ll 总用量 5 -rwx------ 1 root root 26 10月 13 22:16 smart.txt -rwx------ 1 root root 226 10月 13 22:16 tar_create.txt -rwx------ 1 root root 7433 10月 13 22:16 tar.txt //压缩当前目录下的所有文件,并且显示压缩比,显示已经替代原来的文件 #gzip -v * //-v参数表明显示压缩比和文件名 smart.txt: 0.0% -- replaced with smart.txt.gz tar_create.txt: 43.8% -- replaced with tar_create.txt.gz tar.txt: 68.3% -- replaced with tar.txt.gz //再显示当前目录所有文件,可以发现所有文件都压缩成了gz文件 #ll 总用量 3 -rwx------ 1 root root 54 10月 13 22:17 smart.txt.gz -rwx------ 1 root root 160 10月 13 22:17 tar_create.txt.gz -rwx------ 1 root root 2385 10月 13 22:17 tar.txt.gz
注意:gzip只能对单个文件压缩,不能像Winzip和Winrar一样,可以将多个文件压缩成一个.zip文件或.rar文件。正因为如此,Linux才提供了tar命令,用于将若干文件或文件夹打包成一个文件,然后再压缩成一个.gz文件。
(2)用gzip解压缩文件:下面给出用gzip解压缩文件的例子:
//对当前目录下所有压缩的文件解压,并列出详细的信息。 #gzip -dv * smart.txt.gz: 0.0% -- replaced with smart.txt tar_create.txt.gz: 43.8% -- replaced with tar_create.txt tar.txt.gz: 68.3% -- replaced with tar.txt //再显示当前目录下的所有文件,从显示结果看出,所有的.gz压缩文件都已经解压缩了 #ll 总用量 5 -rwx------ 1 root root 26 10月 13 22:22 smart.txt -rwx------ 1 root root 226 10月 13 22:22 tar_create.txt -rwx------ 1 root root 7433 10月 13 22:22 tar.txt
(3)显示压缩文件的内容信息:可以用带-l参数的gzip命令显示gz文件的内容。这只是显示文件内容,并不实际解压缩文件。
# gzip -l * compressed uncompressed ratio uncompressed_name 54 26 0.0% smart.txt 160 226 43.8% tar_create.txt 2385 7433 68.3% tar.txt 2599 7685 66.5% (totals)
(4)在tar命令中嵌入压缩命令:在tar命令中就可以直接嵌入gzip命令,从而直接将若干文件或文件夹处理成一个.tar.gz文件。在这个处理过程中,系统先将若干文件或文件夹打包成.tar,然后将生成的.tar文件压缩成.tar.gz文件。先举例如下:
-rwx------ 1 root root 7433 10月 13 22:51 tar.txt
本文转自samsunglinuxl51CTO博客,原文链接: http://blog.51cto.com/patterson/439717,如需转载请自行联系原作者