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

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

一、Linux下的TAR包管理

TAR命令是在Linux下最常用的文件打包工具,可以将若干文件或若干目录下打包成一个文件,既有利于文件管理,也方便压缩和文件的网络传输。TAR可以为文件和目录创建档案。利用TAR,用户可以为某一特定文件创建档案(备份文件),也可以在档案中改变文件,或者向档案中加入新的文件。

1、TAR命令语法及参数选项

TAR命令使用语法如下:

tar [主选项+辅选项] 文件或者目录

其中,主选项是必需的,表明tar命令要完成的操作,辅选项是辅助使用的,可以有也可以没有。下面列出常用的主选项,并简要说明其功能。

  1. -A,--catenate,--concatenate :将若干个tar文件合并成一个tar文件
  2. -c,--create :创建一个新的tar文件
  3. -d,--diff,--compare:比较tar文件或文件系统的不同之处
  4. --delete:从tar文件中删除文件,但不能磁带文件删除
  5. -r,--append:在tar文件尾部追加文件
  6. -t,--list:显示tar文件内容
  7. -u,--update:更新tar文件
  8. -x,--extract,--get:从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下常用的压缩工具及其产生文件的后缀:

  1. gzip/gunzip:后缀名为.gz
  2. compress/uncompress:后缀名为.Z
  3. zip/unzip:后缀名为.zip
  4. bzip2/bunzip2:后缀名为.bz2
  5. lha:后缀名为.lzh

Linux下压缩工具中最常用的包括gzip、zip和bzip2三种,下面分别讲述这三种最常用的压缩工具。

1、gzip压缩工具

gzip是Linux最常用的软件压缩工具,在Linux终端输入man gzip命令降显示gzip的帮助文档。

该命令的使用形式为:gzip [选项] 压缩或解压缩的文件名。

该命令的主要参数选项有:

  1. -c:将输出写到标准输出上,并保留原有文件。
  2. -d:将压缩文件解压。
  3. -l:对每个压缩文件,显示字段:压缩文件的大小,未压缩文件的大小,压缩比和未压缩文件的名字。
  4. -r:递归地查找指定目录并压缩其中的所有文件或者是解压缩。
  5. -t:测试,检查压缩文件是否完整。
  6. -v:对每一个压缩和解压的文件,显示文件名和压缩比。
  7. -num:用指定的数字num调整压缩的速度,-1或--fast表示最快压缩方法(低压缩比),-9或--best表示最慢压缩方法(高压缩比)。系统默认值为6。

(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_name54                  26          0.0%      smart.txt160                 226        43.8%     tar_create.txt2385                7433        68.3%     tar.txt2599                7685        66.5%    (totals)

(4)在tar命令中嵌入压缩命令:在tar命令中就可以直接嵌入gzip命令,从而直接将若干文件或文件夹处理成一个.tar.gz文件。在这个处理过程中,系统先将若干文件或文件夹打包成.tar,然后将生成的.tar文件压缩成.tar.gz文件。先举例如下:

//将当前目录下所有文件打包并压缩成gong.tar.gz并显示处理进度
# tar cvfz gong.tar.gz  ./*
./smart.txt
./tar_create.txt
./tar.txt//再显示当前目录下所有文件,从显示结果可以看出,已经产生了gong.tar.gz文件
#ll
总用量 7
-rwx------    1 root     root         2704  10月 13 22:59 gong.tar.gz
-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

转载于:https://blog.51cto.com/patterson/439717

手把手教你Linux下的文件管理(一)相关推荐

  1. [原创]手把手教你Linux下的多线程设计--Linux下多线程编程详解(一)

    本文可任意转载,但必须注明作者和出处. [原创]手把手教你Linux下的多线程设计(一)                                       --Linux下多线程编程详解 原 ...

  2. 手把手教你Linux下基于ITK开发基础(1)

    手把手教你Linux下基于ITK开发基础(1) *requirement: requirement version git 2.17.1 g++ Ubuntu 7.5.0-3 ubuntu1~18.0 ...

  3. linux 网卡天启与关闭,手把手教你Linux关闭防火墙命令

    满意答案 qq1984383 2017.02.23 采纳率:47%    等级:8 已帮助:764人 手把手教你linux关闭防火墙命令linux还是比较常用的,于是我研究了一下linux关闭防火墙命 ...

  4. Linux入门基础教程之Linux下软件安装

    Linux入门基础教程之Linux下软件安装 一.在线安装: sudo apt-get install 即可安装 如果在安装完后无法用Tab键补全命令,可以执行: source ~/.zshrc AP ...

  5. linux 命令行使用技巧linux 下的文件管理

    ##1.什么是linux### linux 是指Linux内核 内核               ##系统的核心程序 ##相当于人的大脑 #负责系统程序和硬件分配及调度 ##2.什么是shell## ...

  6. 手把手教你nginx下如何增加网站

    [nginx]手把手教你nginx下如何增加网站 楼主# 更多发布于:2011-08-08 17:06 首先确定下您的环境是否是用按照< redhat 一键安装web环境全攻略>来配置的. ...

  7. Linux入门(2)——Linux下的文件管理

    Linux入门(2)--Linux下的文件管理 文件管理命令 1.创建文件 touch file #创建一个名为file的空文件 touch file1 file2 #同时创建file1 file2个 ...

  8. 手把手教你Linux磁盘分区与文件挂载

    欢迎关注博主 Mindtechnist 或加入[Linux C/C++/Python社区]一起探讨和分享Linux C/C++/Python/Shell编程.机器人技术.机器学习.机器视觉.嵌入式AI ...

  9. Linux下的文件管理

    #1.文件管理命令# touch ##新建文件 ##修改文件时间戳 touch file1 file2... ##建立空文件 touch file ##把文件时间同步到当前时间 touch -t YY ...

最新文章

  1. java float转换int
  2. VS2010中的新特点(上)
  3. 写一个关于github简历远程仓库的总结
  4. Arm Linux 交叉编译(交叉编译是什么?CROSS_COMPILE)(交叉编译工具链【待更】)
  5. 在.NET Core 3.0中发布单个Exe文件(PublishSingleFile)
  6. idea使用jar包依赖,替换掉项目依赖
  7. 慎用Hyper-Threading Technology
  8. 优质淘宝产品描述页模板框架PSD分层模板,美工实用素材
  9. 使用BBED恢复数据文件头
  10. HTML5的应用缓存
  11. H5实例教学--ThreeJs 实现粒子动画飘花效果
  12. 解决Docker for window与VMware虚拟机同时安装,造成虚拟机网络不通以及无法启动问题...
  13. thrift (转)
  14. 27. 面向对象程序设计(2)
  15. 书籍-分布式系统常用技术及案例分析
  16. ImageJ的Macro语言实例教程
  17. python表示倍数的英语句型_英语中“倍数表达法”和“长、宽、高句型”
  18. 树莓派安装中文拼音输入法和五笔输入法
  19. Importance Weighted Adversarial Nets for Partial Domain Adaptation
  20. 炫酷的时间HTML页面,炫酷css3垂直时间轴特效

热门文章

  1. (亲测可行)基于面绘制的MC算法以及基于体绘制的 Ray-casting 实现Dicom图像的三维重建(python实现)
  2. 初识Tcl(八):Tcl 列表
  3. eShopOnContainers 知多少[2]:Run起来
  4. 面向程序员的网络基本知识 - 网络模型及网络设备
  5. vue更新数组和对象
  6. 《HTML、CSS、JavaScript 网页制作从入门到精通》——6.6 单元格属性
  7. net.sf.json.JSONObject 和org.json.JSONObject 的差别
  8. 【循序渐进学Python】1. Python基础知识
  9. 刻骨铭心的startActivityForResult三级跳获得第三个Activity中返回的数据
  10. 软文的作用真的有那么神奇吗?