您的位置:首页 > 运维架构 > Linux

手把手教你Linux下的文件管理(二)

2010-12-05 21:07 176 查看
我的十大IT杰出博客参赛主页是:http://2010blog.51cto.com/1060257,请各位支持我,给我投上宝贵一票,谢谢!

随着Linux开源系统平台的不断发展,越来越多的开源软件可以提供给Linux用户使用,这样,也使得更多的文件“吞噬”着硬盘空间。作为一种优秀的开源操作系统,如何高效地管理系统中的软件是一个很重要的问题。Linux提供了多种方法,用户可以根据实际情况方便地对软件进行管理。比如,它提供了对文件打包的功能,用户可以使用其将若干文件或目录打成一个软件包;同时,它也提供了多种文件压缩工具,使得用户可以对某些文件进行压缩,以减小文件占用的硬盘空间或方便网络传输。本文将通过例子来介绍如何合理地利用这些方法来管理Linux系统中的软件。(更多全文请见:http://os.51cto.com/art/201011/235682.htm

2、zip/unzip命令

zip程序位于/usr/bin目录中,可将文件压缩成.zip文件以节省硬盘空间,而当需要的时候又可将压缩文件解开。unzip命令用于将压缩文件解压。

(1)用zip命令压缩文件或文件夹

在Linux下输入man zip,系统显示zip的帮助文档。

zip命令的使用形式为:zip [选项] 压缩后文件名 待压缩文件或文件夹。

其中:参数选项表明要完成的操作类型,压缩后的文件名是某个合法的文件名,其后缀为zip,待压缩文件或文件夹指明须要进行压缩的文件或文件夹,可以是多个文件或文件夹。zip命令的参数选项如下:

-1:最快压缩,压缩率最差。

-9:最大压缩,压缩率最佳。

-b:暂存文件的路径。该参数常用于zip文件存在而硬盘现有空间不足时。

-c:替新增或更新的文件增加一行注解。

-d:从zip文件移出一个文件。

-D:不要在zip文件中储存文件的目录信息。

-f:以新文件取代现有文件。

-F:修复已经损毁的压缩文件。

-g:将文件压缩附加到zip文件中。

-h:显示辅助说明。

-i:指定要加入的某些特定文件。

-j:只储存文件的名称,不含目录。

-m:将特定文件移入zip文件中,并且删除特定文件。

-n:不压缩特定扩展名的文件。

-o:将zip文件的时间设成最后修正zip文件的时间。

-q:安静模式,不会显示相关讯息和提示。

-r:包括子目录。

-t:只处理mmddyy日期以后的文件。

-T:测试zip文件是否正常。

-u:只更新改变过的文件和新文件。

-v:显示版本信息或详细资料。

-x:不须要压缩的文件。

-y:将symbolic link压缩,而不是压缩所连结到的文件。

-z:为zip文件增加注解。

-#:设定压缩速度。-0表示不压缩,-1表示最快速度的压缩,-9表示最慢速度的压缩(最佳化的压缩)。预设值为-6。

? -@:从标准输入读取文件名称。

注意:使用zip命令可以将许多文件压缩成一个文件,这与gzip是有区别的。

下面给出使用该命令压缩文件或文件夹的例子:

//显示当前目录下所有文件和文件夹
#ll
总用量 9
drwx------    1 root     root         4096  10月 15 19:45 gzip
drwx------    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.txt
drwx------    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.zip
drwx------1 root  root  4096 10月 15 19:45 gzip
drwx------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.txt
drwx------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.zip
zip info: local extra (21 bytes) != central extra (13 bytes): gzip/
zip info: local extra (21 bytes) != central extra (13 bytes): gzip/gong.tar.gz
zip info: local extra (21 bytes) != central extra (13 bytes): smart/
zip info: local extra (21 bytes) != central extra (13 bytes): smart.txt
zip info: local extra (21 bytes) != central extra (13 bytes): tar_create.txt
zip info: local extra (21 bytes) != central extra (13 bytes): tar.txt
zip 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.txt
zip info: local extra (21 bytes) != central extra (13 bytes): smart.txt
zip info: local extra (21 bytes) != central extra (13 bytes): tar_create.txt
zip info: local extra (21 bytes) != central extra (13 bytes): tar.txt

//删除压缩文件中smart.txt文件
# zip -d gong.zip smart.txt
deleting: smart.txt

//再显示压缩文件内容,可以发现文件删除成功
# zip -v gong.zip
zip info: local extra (21 bytes) != central extra (13 bytes): free.txt
zip info: local extra (21 bytes) != central extra (13 bytes): tar_create.txt
zip 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.zip
zip info: local extra (21 bytes) != central extra (13 bytes): free.txt
zip info: local extra (21 bytes) != central extra (13 bytes): tar_create.txt
zip info: local extra (21 bytes) != central extra (13 bytes): tar.txt
zip info: local extra (21 bytes) != central extra (13 bytes): rpm_info.txt

(2)用unzip命令解压缩文件

unzip命令用于扩展名为zip的压缩文件的解压缩,同时,Windows下用压缩软件Winzip压缩的文件在Linux系统下也可以用unzip命令解压缩。unzip命令的语法如下:

unzip [参数选项] 压缩文件名.zip。

所有参数选项如下:

-x:文件列表:解压缩文件,但不包括指定的file文件。

-v:查看压缩文件目录,但不解压缩。

-t:测试文件有无损坏,但不解压缩。

-d:目录:把压缩文件解压缩到指定目录下。

-z:只显示压缩文件的注解。

-n:不覆盖已经存在的文件。

-o:覆盖已存在的文件且不要求用户确认。

-j:不重建文档的目录结构,把所有文件解压缩到同一目录下。

unzip命令的常用用法有:

简单解压缩文件:将压缩文件解压缩到当前目录下。

//显示当前目录下所有文件,从显示结果可以发现当前目录下只有一个文件gong.zip
# ll
总用量 7
-rwx------    1 root     root        13512  10月 15 20:44 gong.zip

//将gong.zip解压缩到当前目录
# unzip gong.zip
Archive:  gong.zip
inflating: free.txt
inflating: tar_create.txt
inflating: tar.txt
inflating: 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命令不覆盖原来的文件。

//解压缩当前目录下的text.zip压缩文件,-n参数选项指明不覆盖原有文件,-d /tmp指明将文件解压缩到/tmp目录下
#unzip -n text.zip -d /tmp
//查看压缩文件目录:类似于带-v参数的zip命令,只显示压缩文件内容,并不实际解压缩文件。
#unzip -v text.zip  //显示当前目录下text.zip压缩文件内容

3、bzip2命令

bzip2是一个无损压缩软件,具有高质量的数据压缩能力。它能将文件压缩到原来的10%到15%,而且压缩速度和解压缩速度都非常高,因此在Linux下得到广泛使用。 bzip2从命令行读入文件名和参数,每个文件都被名为“原始文件名.bz2”的压缩文件替换。每个压缩文件具有与原文件相同的修改时间和权限,如果可能的话,还具有相同的属主,因此在解压缩时这些特性将正确地恢复。 (1)bzip2命令参数选项 -c:将数据压缩或解压缩至标准输出。 -d:强制解压缩。bzip2、bunzip2和bzcat实际上是同一个程序,进行何种操作将根据程序名确定。指定该选项后将不考虑这一机制,强制bzip2解压缩。 -z:和-d选项类似,强制进行压缩操作,而不管输入的是哪个程序名。 -t:检查指定文件的完整性,但并不对其解压缩。实际上将对数据进行实验性的解压缩操作,而不输出结果。 -f:强制覆盖输出文件。通常bzip2不会覆盖已经存在的文件。该选项还强制bzip2打破文件的硬链接,默认情况下bzip2不会这么做。 -k:在压缩或解压缩时保留输入文件(不删除这些文件)。 ? -s:在压缩、解压缩及检查时减少内存用量。采用一种修正的算法进行压缩和测试,每个数据块仅需要2.5个字节。这意味着任何文件都可以在2300k的内存中进行解压缩,尽管速度只有通常情况下的一半。在压缩时,-s将选定200k的块长度,内存用量也限制在200k左右,代价是压缩率会降低。总之,如果机器的内存较少(8兆字节或更少),可对所有操作都采用-s选项。 -q:压制不重要的警告信息。属于I/O错误及其他严重事件的信息将不会被压制。 -v:详尽模式--显示每个被处理文件的压缩率。命令行中更多的-v选项将增加详细的程度,使bzip2显示出许多主要用于诊断目的信息。 -L:显示软件版本,许可证条款及条件。 -1to-9:在压缩时将块长度设为100k、200k.、900k。对解压缩没有影响。 (2)用bzip2命令压缩文件 [code] //显示当前目录下所有文件 # 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.out
bunzip2: 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

[/code]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息