15.1 gzip

gzip(1)

是GNU的压缩程序。它只对单个文件进行压缩。基本用法如下:

$ gzip filename

程序执行以后,文件名会变成filename.gz,而且一般情况下大小会比原文件要小。注意,程序并不新建一个新的文件filename.gz,

而是将filename变成filename.gz。一般来说,文本文件压缩率会比较高。而那些jpeg图像,mp3等类似文件的压缩率就没有那么好了,

因为它们本来就已经被压缩过了的。这个基本用法考虑了压缩时间和压缩后文件尺寸的平衡问题(译者注:如果要使压缩后的文件更小,就需要用到更多的时间)。

要得到最小文件大小(最大压缩),可以使用如下用法:

$ gzip -9 filename

这样就可以得到gzip能够压缩的最小文件尺寸,但是需要更长的压缩时间。上面的数字越小,压缩就越快,相反压缩率也就越小。

将gzip压缩的文件解压缩,有两个命令可以使用,但实际上它们是同一个程序。只要压缩文件的后缀名被gzip程序认到,它就可以解压缩。后缀名可以是:.gz,

-gz, .z, -z, .Z 和 ?Z。可以使用的第一个命令是:

$ gunzip filename.gz

使用上面的命令后,filename.gz会被解压缩并去掉后缀名.gz变成filename。gunzip

实际上是gzip程序的一部分,它跟gzip ?d 这个命令有等同效果。但是我们使用的时候,经常使用gunzip,

因为这个用法似乎更酷些。: ^ )

15.2 bzip2

bzip2(1)是 Slackware

Linux里面压缩程序的另一个选择。它的压缩算法不同于gzip。与gzip

相比有其优点,也有一些缺点。bzip2的主要优点在于它压缩后文件的尺寸,对于相同文件,bzip2

压缩后的尺寸几乎总是小于gzip的压缩结果。有些时候,这个差距会相当大。这个优点对于使用小猫下载文件的用户来说表现得尤为突出。需要提醒的是,当在

一些公共ftp

服务器上下载文件时,在.gz和.bz2文件中尽量选择.bz2文件是一种基本的网络礼节,因为这样可以减少服务器的负担以给更多人服务。

bzip2的缺点在于,它占用的CPU的使用率会比gzip更多。这就是说,压缩同一个文件,bzip2要比gzip使用更长的时间,占用更多的CPU资源。所以,当你在两者之中考虑选用哪种压缩程序的时候,需要衡量的是速度和压缩后的文件尺寸哪个对你来说更重要些。

bzip2的使用方法和gzip是一样的,所以我们不再花时间讨论了。像gunzip一样,bunzip2的效果等同于bzip2

?d。与gzip最大的不同是bzip2使用后缀名.bz2.

$ bzip2 filename

$ bunzip2 filename.bz2

$ gunzip -9 filename

15.3 tar

tar(1)是一个GNU的磁带归档程序。它可以将几个文件或者目录打包压缩成一个文件。这个特点让我们可以压缩整个目录树,而单使用gzip和

bzip2是无法做到的。tar有很多命令行参数,你可以在手册页找到它们。在这一节里,我们只是讨论一下那些经常用到的tar的用法。

tar

最常用的用法是将我们从网站或者ftp上下载的文件解压缩然后在解包。a.tar.gz是我们经常看到的文件名格式,这就是我们通常说的

"tarball",它是先把一些文件用tar打包,然后在用gzip压缩。你也有可能会看到名为a.tar.Z的文件,这也是同样的做法,但是你一般只

会在比较老的Unix 系统里面遇到。

另外,你也会在另外一些地方看到如a.tar.bz2这样文件。Kernel源文件就是用这种格式发布的,为的是可以让文件更小,便于下载。你可能已经猜到,它就是先将一些文件用tar打包,然后再用bzip2压缩。

我们可以将上述格式的文件用tar加一些命令行参数进行解包。-z参数表示在首先运行gunzip将文件解压缩。将一个tarball解包的最常用的用法是:

$ tar -xvzf filename.tar.gz

这里有不少的参数,那么它们各自有什么意思呢?

-x表示提取文件。这是一个非常重要的参数,因为它告诉tar对输入的文件具体怎么处理。在这里,我们要将打包的文件分离还原成打包前的状态。

-v表示详述。加入这个参数让程序将解包出来的每一个文件列出来。如果觉得列出来太烦了,你完全可以把这个参数去掉来关闭这个功能。相反,如果你需要每个解包文件更详细的信息,则可以使用-vv参数。

-z是告诉tar先运行gunzip将文件解压缩。

-f是告诉tar在命令行输入的下一个串字符是需要处理的文件。

上面这个命令也可以用一些其他形式的写法。在比较老的系统里面由于缺少新版本的GNU tar程序,你可能会看到它是写成这样的:

$ gunzip filename.tar.gz | tar -xvf

-

这行命令先把文件解压缩,然后把解压的文件对输出到tar程序。gzip可以把其处理完的数据输到标准输出。这里就是把gzip解压缩的文件作为标准输出,然后由管道把文件送到tar程序进行解包。最后的

"-"表示处理标准输入。它将解包后的文件写入磁盘。

还有一种写法是将第一种命令格式的短划线去掉,像这样:

$ tar xvzf filename.tar.gz

你也可能会碰到bzip2压缩的打包文件。在Slackware

Linux所带的tar程序版本 可以像gzip压缩的打包文件一样,只是要把参数-z用-j代替:

$ tar -xvjf filename.tar.bz2

这里需要注意的是,tar会把解包的文件放到当前目录。所以如果要把一个放在/tmp目录文件解压缩到你的家目录的话,这里有一些做法可供选择:

选择一,把文件拷贝到家目录,然后解包

选择二,指定需要解包文件的路径

选择三,用-C 参数指定解包后存放文件的路径

$ cd $HOME

$ cp /tmp/filename.tar.gz

$ tar -xvzf filename.tar.gz

$ cd $HOME

$ tar -xvzf

/tmp/finename.tar.gz

$ cd /

$ tar -xvzf /tmp/filename.tar.gz -C

$HOME

上面所有的命令都是等效的。每一种做法都是把文件解包到你的家目录,源文件则留在原来的地方。

上面讲了那么多用tar解包的命令,现在让我们来看看tar是如何来打包的吧。

在大多数情况下,只需要用参数"-c"代替参数"-x"就可以了:

$ tar -cvzf filename.tar.gz .

在这行命令里面,参数-c是告诉tar来建立一个打包文件;而参数-z是将打包的文件通过gzip程序进行压缩。filename.tar.gz

是你将要建立的文件名。(译者添加:命令行最后的"."是告诉tar将当前目录下的所有文件/文件夹打包)

参数"-f"不是必需的,但是通常来说加上会是一个好主意。如果不加,tar会将数据写到标准输出,这就需要管道将tar输出到另外一个程序,像这样:

$ tar -cv filename.tar . | gpg

--encrypt

这行命令把当前目录下的所有文件打包建立一个没有被压缩的tar归档文件,通过管道输出到gpg程序进行加密,让不知道密钥的人无法读到文件内容。

15.4 zip

最后,讨论一下处理zip文件的两个程序。zip文件在Windows世界里面是极为常用的,所以Linux也有相应的程序来处理它们。zip文件的压缩程序叫做zip(1),解压缩程序叫做unzip(1).

$ zip foo *

这行命令会建立一个包涵当前目录所有文件的的zip文件

foo.zip。zip会自动将

.zip后缀名加上,所以我们不需要在命令中加上。你也可以加上一个参数-r使zip将当前目录下的所有文件夹目录也加在zip文件中:

$ zip -r foo *

解压缩文件很简单,像这样:

$ unzip foo.zip

这样会解压缩foo.zip里面的所有文件和文件夹

zip程序还有一些高级应用参数,包括建立自解压包,压缩是保留源文件,调节压缩文件的尺寸等等,在这里就不一一赘述了。如果想了解更多,请查看手册页。

linux文件分别打包命令,Linux文件打包命令相关推荐

  1. dd命令打包多个文件_linux的tar命令详情;linux多个文件压缩打包到一个压缩文件...

    tar命令 可以用来压缩打包单文件.多个文件.单个目录.多个目录. Linux打包命令_tar tar命令可以用来压缩打包单文件.多个文件.单个目录.多个目录. 常用格式: 单个文件压缩打包 tar ...

  2. linux 如何打包分区文件,Linux基础------文件打包解包---tar命令,文件压缩解压---命令gzip,vim编辑器创建和编辑正文件,磁盘分区/格式化,软/硬链接...

    作业一: 1)将用户信息数据库文件和组信息数据库文件纵向合并为一个文件/1.txt(覆盖) cat /etc/passwd /etc/group > /1.txt 2)将用户信息数据库文件和用户 ...

  3. linux tar zcxf,tar/gzip/zip文件打包、压缩命令

    一.tar打包备份工具 1.命令功能 tar 将多个文件或目录打包在一起,可用通过调用gzip或zip实现压缩.解压的命令:tar不仅可以多多个文件进行打包,还可以对多个文件打包后进行压缩. 2.语法 ...

  4. Win10打包tar.gz文件,Win10使用tar命令,Win10使用linux基本命令

    Windows系统使用tar命令打包tar.gz文件 使用7z命令的时候无意打了tar命令,结果发现在windows powershell上也能使用tar命令?! 试了一下tar命令,打包成功! 注: ...

  5. Linux 打包压缩-文件打包-打包工具【tar】命令使用简介

    tar 将许多文件一起保存至一个单独的磁带或磁盘归档,并能从归档中单独还原所需文件. 补充说明 tar命令 可以为linux的文件和目录创建档案.利用tar,可以为某一特定文件创建档案(备份文件),也 ...

  6. linux将目录打包压缩,linux 文件夹打包、解压命令大全

    TAR压缩tar -zcvf /data/backup.tar.gz /wwwroot tar -zcvf   打包后生成的文件名全路径     要打包的目录 以上的例子:把/wwwroot文件夹打包 ...

  7. Linux文件打包及下载命令-tar(打包解压)

    一.tar命令打包解压 在维护配置服务器时,难免会要用到压缩,解压缩,打包,解包等,这时候tar命令就是是必不可少的一个功能强大的工具.linux中最流行的tar是麻雀虽小,五脏俱全,功能强大. ta ...

  8. Linux下文件的打包与压缩(tar命令)

    基本概念 打包是指将多个文件或目录打包成一个文件,压缩是指将一个大的文件通过算法压缩成一个小的文件.由于Linux中的很多压缩程序只能对一个文件进行,所以通常要先将全部文件打包成一个文件,然后再对那一 ...

  9. Linux 文件打包(tar命令——怎么使打包后的文件夹里只有想要的文件而不是有多一个原目录)

    正常打包情况下,打包后的目录下还有个原目录,如下:   怎么去掉这个多余的文件夹呢?如下tar -cvf config.tar -C config/ .   打包包含隐藏目录的文件夹:tar -cvf ...

最新文章

  1. 计算机音乐刚好遇见你乐谱,《刚好遇见你》曲谱_刚好遇见你乐谱
  2. php zend框架入门,Zend Framework 入门——快速上手
  3. .net 新添加的项目未加载_JDK 13 新特性一览
  4. promise 和 Observable 的区别
  5. 机器学习中的随机过程_机器学习过程
  6. Python列表元素的循环删除问题
  7. java命令行参数_Java学习从入门到精通,JDK工具条知识点学习资料
  8. Redis 优势以及性能问题
  9. 数字信号处理实验matlab版答案,数字信号处理习题答案及matlab实验详解.pdf
  10. JS 中 Date() 的其他操作集锦
  11. 原生js获取execl里面的值 主要使用ActiveXObject
  12. tableMerge 表格列自动合并
  13. 如何将webp格式转换成jpg?
  14. 飞机飞行原理之空气流动基本规律
  15. OS X Mavericks 10.9.3 (13D65) 官方原版 懒人版安装镜像
  16. MyEclipse10破解 运行run.bat闪退
  17. selenium设置浏览器的大小和位置
  18. java 数学公式解析框架有哪些_开源工具 | 推荐几个Gitee火热Java项目
  19. 关于拉普拉斯算子作用于(1/r)的证明
  20. Java基础:01Java语言概述(常见的DOS命令,Java语言的特点、核心机制、环境搭建,HelloWorld,注释,Java API 文档)

热门文章

  1. 通过BAT、网易、京东产品经理的简历大概什么样?
  2. WebMagic爬取58同城租房数据
  3. linux不重启换root密码是什么原因,在Linux下修改和重置root密码的方法(超简单)
  4. vue表单的基本使用
  5. css中clear的作用是什么?
  6. c语言程序整数四则运算,c语言中三个整数随机的四则运算
  7. JQ实现情人节表白程序
  8. voinc vue实现级联选择
  9. 如何隐藏 video 元素的下载按钮
  10. Java实现回形数,只利用数组、循环和if-else语句