鬼畜眼镜R解压的时候有两个文件坏了 有谁能发外链的论坛一...

几百 MB 的文件,解压后达到几个 GB,这是怎么做到的?
我的图书馆
几百 MB 的文件,解压后达到几个 GB,这是怎么做到的?
高压缩文件是如何实现的?
加刘景长,中二病MAX
简要概述原理:
每个文件都由各种不同代码组成,比如 01 代码。这类文件只有数字 0 与 1 组合。
压缩原理就是——通过寻找其中的规律,简化数字的排列。
可以简化成
5 个 0,2 个 1,3 个 0,10 个 1 的排列
可以简化成数学的
至于@yskin 说 没见过 2G 压缩到十几兆的。
实际上在极限压缩方式下其实 28.1G 压到 25.8M 都可以。
打开看后基本都能理解这个压缩的大概原理了。
下面是几种常见文件压缩算法原理介绍:
字典算法是最为简单的压缩算法之一。它是把文本中出现频率比较多的单词或词汇组合做成一个对应的字典列表,并用特殊代码来表示这个单词或词汇。例如:
有字典列表:
00=Chinese
源文本:I am a Chinese people,I am from China 压缩后的编码为:I am a 00 01,I am from 02。压缩编码后的长度显著缩小,这样的编码在 SLG 游戏等专有名词比较多的游戏中比较容易出现,比如《SD 高达》。
固定位长算法(Fixed Bit Length Packing)
这种算法是把文本用需要的最少的位来进行压缩编码。
比 如八个十六进制数:1,2,3,4,5,6,7,8。转换为二进制为:000100, 001000。每个数只用到了低 4 位,而高 4 位没有用到(全为 0),因此对低 4 位进行压缩编 码后得到:,,,。然后补充为字节得到:, 111000。所以原来的八个十六进制数缩短了一半,得到 4 个十六进制数:12,34,56,78。
这也是比较常见的压缩算法之一。
RLE(Run Length Encoding)
是一个针对无损压缩的非常简单的算法。它用重复字节和重复的次数来简单描述来代替重复的字节。尽管简单并且对于通常的压缩非常低效,但它有的时候却非常有用(例如,JPEG 就使用它)。
原理图 2.1 显示了一个如何使用 RLE 算法来对一个数据流编码的例子,其中出现六次的符号‘93’已经用 3 个字节来代替:一个标记字节(‘0’在本例中)重复的次数(‘6’)和符号本身(‘93’)。RLE 解码器遇到符号‘0’的时候,它表明后面的两个字节决定了需要输出哪个符号以及输出多少次。
这种压缩编码是一种变长的编码,RLE 根据文本不同的具体情况会有不同的压缩编码变体与之相适应,以产生更大的压缩比率。
  变体 1:重复次数 + 字符
文本字符串:A A A B B B C C C C D D D D,编码后得到:3 A 3 B 4 C 4 D。
  变体 2:特殊字符 + 重复次数 + 字符
文本字符串:A A A A A B C C C C B C C C,编码后得到:B B 5 A B B 4 C B B 3 C。编码串的最开始说明特殊字符 B,以后 B 后面跟着的数字就表示出重复的次数。
  变体 3:把文本每个字节分组成块,每个字符最多重复 127 次。每个块以一个特殊字节开头。那个特殊字节的第 7 位如果被置位,那么剩下的 7 位数值就是后面的字符的重复次数。如果第 7 位没有被置位,那么剩下 7 位就是后面没有被压缩的字符的数量。例如:文本字符串:A A A A A B C D E F F F。编码后得到:85 A 4 B C D E 83 F(85H= B、4H= B、83H= B)
实现 RLE 可以使用很多不同的方法。基本压缩库中详细实现的方式是非常有效的一个。一个特殊的标记字节用来指示重复节的开始,而不是对于重复非重复节都 coding run。
因此非重复节可以有任意长度而不被控制字节打断,除非指定的标记字节出现在非重复节(顶多以两个字节来编码)的稀有情况下。为了最优化效率,标记字节应该是输入流中最少出现的符号(或许就不存在)。
重复 runs 能够在 32768 字节的时候运转。少于 129 字节的要求 3 个字节编码(标记 + 次数 + 符号),而大雨 128 字节要求四个字节(标记 + 次数的高 4 位|0x80+ 次数的低 4 位)。这是通常所有采用的压缩的做法,并且也是相比较三个字节固定编码(允许使用 3 个字节来编码 256 个字节)而言非常少见的有损压缩率的方法。
在这种模式下,最坏的压缩结果是:
输出大小=257/256* 输入大小 +1
其他还有很多很多变体算法,这些算法在 Winzip Winrar 这些软件中也是经常用到的。
霍夫曼编码(Huffman Encoding)
哈夫曼编码是无损压缩当中最好的方法。它使用预先二进制描述来替换每个符号,长度由特殊符号出现的频率决定。常见的符号需要很少的位来表示,而不常见的符号需要很多为来表示。
哈夫曼算法在改变任何符号二进制编码引起少量密集表现方面是最佳的。然而,它并不处理符号的顺序和重复或序号的序列。
原理我不打算探究哈夫曼编码的所有实际的细节,但基本的原理是为每个符号找到新的二进制表示,从而通常符号使用很少的位,不常见的符号使用较多的位。
简短的说,这个问题的解决方案是为了查找每个符号的通用程度,我们建立一个未压缩数据的柱状图;通过递归拆分这个柱状图为两部分来创建一个二叉树,每个递归的一半应该和另一半具有同样的权(权是∑NK =1 符号数 k, N 是分之中符号的数量,符号数 k 是符号 k 出现的次数)
这棵树有两个目的:
1. 编码器使用这棵树来找到每个符号最优的表示方法
2. 解码器使用这棵树唯一的标识在压缩流中每个编码的开始和结束,其通过在读压缩数据位的时候自顶向底的遍历树,选择基于数据流中的每个独立位的分支,一旦一个到达叶子节点,解码器知道一个完整的编码已经读出来了。
我们来看一个例子会让我们更清楚。图 2.2 显示了一个 10 个字节的未压缩的数据。
根据符号频率,哈夫曼编码器生成哈夫曼树(图 2.4)和相应的编码表示(图 2.3)。
你可以看到,常见的符号接近根,因此只要少数位来表示。于是最终的压缩数据流如图 2.5 所示。
压缩后的数据流是 24 位(三个字节),原来是 80 位(10 个字节)。当然,我应该存储哈夫曼树,这样解码器就能够解码出对应的压缩流了,这就使得该例子中的真正数据流比输入的流数据量大。这是相对较短的数据上的副作用。对于大数据量来说,上面的哈夫曼树就不占太多比例了。解码的时候,从上到下遍历树,为压缩的流选择从左 / 右分支,每次碰到一个叶子节点的时候,就可以将对应的字节写到解压输出流中,然后再从根开始遍历。 实现哈夫曼编码器可以在基本压缩库中找到,其是非常直接的实现。
这个实现的基本缺陷是:
1. 慢位流实现
2. 相当慢的解码(比编码慢)
3. 最大的树深度是 32(编码器在任何超过 32 位大小的时候退出)。如果我不是搞错的话,这是不可能的,除非输出的数据大于 232 字节。
另一方面,这个实现有几个优点:
1. 哈夫曼树以一个紧密的形式每个符号要求 12 位(对于 8 位的符号)的方式存储,这意味着最大的头为 384。
2. 编码相当容易理解
哈夫曼编码在数据有噪音的情况(不是有规律的,例如 RLE)下非常好,这中情况下大多数基于字典方式的编码器都有问题。
3. Rice 对于由大 word(例如:16 或 32 位)组成的数据和教低的数据值,Rice 编码能够获得较好的压缩比。音频和高动态变化的图像都是这种类型的数据,它们被某种预言预处理过(例如 delta 相邻的采样)。
尽管哈夫曼编码处理这种数据是最优的,却由于几个原因而不适合处理这种数据(例如:32 位大小要求 16GB 的柱状图缓冲区来进行哈夫曼树编码)。因此一个比较动态的方式更适合由大 word 组成的数据。
原理 Rice 编码背后的基本思想是尽可能的用较少的位来存储多个字(正像使用哈夫曼编码一样)。实际上,有人可能想到 Rice 是静态的哈夫曼编码(例如,编码不是由实际数据内容的统计信息决定,而是由小的值比高的值常见的假定决定)。
编码非常简单:将值 X 用 X 个‘1’位之后跟一个 0 位来表示。
实现在基本压缩库针对 Rice 做了许多优化:
1. 每个字最没有意义的位被存储为 k 和最有意义的 N-k 位用 Rice 编码。K 作为先前流中少许采样的位平均数。这是通常最好使用 Rice 编码的方法,隐藏噪音且对于动态变化的范围并不导致非常长的 Rice 编码。
2. 如果 rice 编码比固定的开端长,T,一个可选的编码:输出 T 个‘1’位,紧跟(log2(X-T))个‘1’和一个‘0’位,接着是 X-T(最没有意义的(log2(X-T))-1 位)。这对于大值来说都是比较高效的代码并且阻止可笑的长 Rice 编码(最坏的情况,对于一个 32 位 word 单个 Rice 编码可能变成 232 位或 512MB)。
如果开端是 4,下面是结果编码表:
Thresholded
就像你看到的一样,在这个实现中使用 threshold 方法仅仅两个编码导致一个最坏的情况;剩下的编码产生比标准 Rice 编码还要短的编码。
最坏的情况,输出。
Lempel-Ziv (LZ77)
Lempel-Ziv 压缩模式有许多不同的变量。基本压缩库有清晰的 LZ77 算法的实现(Lempel-Ziv,1977),执行的很好,源代码也非常容易理解。
LZ 编码器能用来通用目标的压缩,特别对于文本执行的很好。
它也在 RLE 和哈夫曼编码器(RLE,LZ,哈夫曼)中使用来大多数情况下获得更多的压缩。这个压缩算法是有版权的。
原理在 LZ 压缩算法的背后是使用 RLE 算法用先前出现的相同字节序列的引用来替代。
简单的讲,LZ 算法被认为是字符串匹配的算法。例如:在一段文本中某字符串经常出现,并且可以通过前面文本中出现的字符串指针来表示。当然这个想法的前提是指针应该比字符串本身要短。
例如,在上一段短语“字符串”经常出现,可以将除第一个字符串之外的所有用第一个字符串引用来表示从而节省一些空间。
一个字符串引用通过下面的方式来表示:
1. 唯一的标记
2. 偏移数量
3. 字符串长度
由编码的模式决定引用是一个固定的或变动的长度。后面的情况经常是首选,因为它允许编码器用引用的大小来交换字符串的大小(例如,如果字符串相当长,增加引用的长度可能是值得的)。
实现使用 LZ77 的一个问题是由于算法需要字符串匹配,对于每个输入流的单个字节,每个流中此字节前面的哪个字节都必须被作为字符串的开始从而尽可能的进行字符串匹配,这意味着算法非常慢。
另一个问题是为了最优化压缩而调整字符串引用的表示形式并不容易。例如,必须决定是否所有的引用和非压缩字节应该在压缩流中的字节边界发生。
基本压缩库使用一个清晰的实现来保证所有的符号和引用是字节对齐的,因此牺牲了压缩比率,并且字符串匹配程序并不是最优化的(没有缓存、历史缓冲区或提高速度的小技巧),这意味着程序非常慢。
另一方面,解压缩程序非常简单。
一个提高 LZ77 速度的试验已经进行了,这个试验中使用数组索引来加速字符串匹配的过程。然而,它还是比通常的压缩程序慢。
当然静态数据和动态数据的压缩策略是完全不同的。
一个压缩文件是不是还可以用其他算法再继续压缩?
可以,但没要。压缩文件有极限值存在。高压一遍已经很接近这个值了,再压缩的话基本也就只有一丁点压缩率提升,甚至会增加体积。
随便做的渣绘图。不要在意细节→ →
下面是题外话。
那么一般要如何简单实现高压缩?
系统文件诸如 GAL 游戏跟一些纯代码的文档基本能直接用 7Z 进行无损压缩就可以了。当然,高压缩率也意味着更费时间的压缩跟解压。压缩率小的没必要用 7z,直接打包反而更适合。
影音图像文件多数压缩率只能通过再编码有损压缩。比如 BMP 图像转 jpg 吧图片的一些一般人用不到的杂信息去除,APE 转 MP3 之类。基本除了音源文件外其他要对比不太明显。(照片 BMP 通过 7Z 压缩后解压其实是有点变化的,这个不细说,一说就没完没了了。)
至于有的人说我上面附带的极限压缩例子太坑爹,于是再附带一个我做的动画压制 1080p BDMV 通过 10bit x264 再编码压缩成每话 90M 大小视频。源 BDBOX 总大小 119.16GB。
画面的话我【个人主观看法】觉得在电脑观看跟源盘没什么区别。(PS3 跟一些高端硬件芯片的解码器播放那是另一回事了)
画面控追求的 BDMV 无损画质也是相对无损。真正意义上的无损画质输出的影片,渲染体积 1 分钟视频就超过 10G。我个人渲过最大的是 18 秒 44.5G 8k 视频。
馆藏&357049
TA的推荐TA的最新馆藏
喜欢该文的人也喜欢16487人阅读
linux(34)
对于刚刚接触Linux的人来说,一定会给Linux下一大堆各式各样的文件名给搞晕。别个不说,单单就压缩文件为例,我们知道在Windows下最常见的压缩文件就只有两种,一是,zip,另一个是.rar。可是Linux就不同了,它有.gz、.tar.gz、tgz、bz2、.Z、.tar等众多的压缩文件名,此外windows下的.zip和.rar也可以在Linux下使用,不过在Linux使用.zip和.rar的人就太少了。本文就来对这些常见的压缩文件进行一番小结,希望你下次遇到这些文件时不至于被搞晕icon_smile.gif
  在具体总结各类压缩文件之前呢,首先要弄清两个概念:打包和压缩。打包是指将一大堆文件或目录什么的变成一个总的文件,压缩则是将一个大的文件通过一些压缩算法变成一个小文件。为什么要区分这两个概念呢?其实这源于Linux中的很多压
缩程序只能针对一个文件进行压缩,这样当你想要压缩一大堆文件时,你就得先借助另它的工具将这一大堆文件先打成一个包,然后再就原来的压缩程序进行压缩。
  Linux下最常用的打包程序就是tar了,使用tar程序打出来的包我们常称为tar包,tar包文件的命令通常都是以.tar结尾的。生成tar包后,就可以用其他的程序来进行压缩了,所以首先就来讲讲tar命令的基本用法:
  tar命令的选项有很多(用man tar可以查看到),但常用的就那么几个选项,下面来举例说明一下:
  # tar -cf all.tar *.jpg
  这条命令是将所有.jpg的文件打成一个名为all.tar的包。-c是表示产生新的包,-f指定包的文件名。
  # tar -rf all.tar *.gif
  这条命令是将所有.gif的文件增加到all.tar的包里面去。-r是表示增加文件的意思。
&&&&&&& # tar -uf all.tar logo.gif
  这条命令是更新原来tar包all.tar中logo.gif文件,-u是表示更新文件的意思。
  # tar -tf all.tar
  这条命令是列出all.tar包中所有文件,-t是列出文件的意思
  # tar -xf all.tar
  这条命令是解出all.tar包中所有文件,-x是解开的意思
  以上就是tar的最基本的用法。为了方便用户在打包解包的同时可以压缩或文件,tar提供了一种特殊的功能。这就是tar可以在打包或解包的同时调用其它的压缩程序,比如调用gzip、bzip2等。
  1) tar调用gzip
&&&&&& gzip是GNU组织开发的一个压缩程序,.gz结尾的文件就是gzip压缩的结果。与gzip相对的解压程序是gunzip。tar中使用-z这个参数来调用gzip。下面来举例说明一下:
  # tar -czf all.tar.gz *.jpg
  这条命令是将所有.jpg的文件打成一个tar包,并且将其用gzip压缩,生成一个
gzip压缩过的包,包名为all.tar.gz
  # tar -xzf all.tar.gz
  这条命令是将上面产生的包解开。
  2) tar调用bzip2
  bzip2是一个压缩能力更强的压缩程序,.bz2结尾的文件就是bzip2压缩的结果。与bzip2相对的解压程序是bunzip2。tar中使用-j这个参数来调用gzip。下面来举例说明一下:
  # tar -cjf all.tar.bz2 *.jpg
  这条命令是将所有.jpg的文件打成一个tar包,并且将其用bzip2压缩,生成一个bzip2压缩过的包,包名为all.tar.bz2
  # tar -xjf all.tar.bz2
  这条命令是将上面产生的包解开。
&&&&&& 3)tar调用compress
  compress也是一个压缩程序,但是好象使用compress的人不如gzip和bzip2的人多。.Z结尾的文件就是bzip2压缩的结果。与 compress相对的解压程序是uncompress。tar中使用-Z这个参数来调用compress。下面来举例说明一下:
  # tar -cZf all.tar.Z *.jpg
  这条命令是将所有.jpg的文件打成一个tar包,并且将其用compress压缩,生成一个uncompress压缩过的包,包名为all.tar.Z
  # tar -xZf all.tar.Z
  这条命令是将上面产生的包解开
  有了上面的知识,你应该可以解开多种压缩文件了,下面对于tar系列的压缩文件作一个小结:
  1)对于.tar结尾的文件
  tar -xf all.tar
  2)对于.gz结尾的文件
  gzip -d all.gz
  gunzip all.gz
  3)对于.tgz或.tar.gz结尾的文件
  tar -xzf all.tar.gz
  tar -xzf all.tgz
  4)对于.bz2结尾的文件
  bzip2 -d all.bz2
  bunzip2 all.bz2
  5)对于tar.bz2结尾的文件
  tar -xjf all.tar.bz2
  6)对于.Z结尾的文件
  uncompress all.Z
  7)对于.tar.Z结尾的文件
  tar -xZf all.tar.z
  另外对于Window下的常见压缩文件.zip和.rar,Linux也有相应的方法来解压它
  1)对于.zip
  linux下提供了zip和unzip程序,zip是压缩程序,unzip是解压程序。它们的参
数选项很多,这里只做简单介绍,依旧举例说明一下其用法:
  # zip all.zip *.jpg
  这条命令是将所有.jpg的文件压缩成一个zip包
&&&&&& # unzip all.zip
  这条命令是将all.zip中的所有文件解压出来
  2)对于.rar
  要在linux下处理.rar文件,需要安装RAR for Linux,可以从网上下载,但要记住,RAR for Linux不是免费的;可以下载RARfor Linux 3.2.0,然后:
  # tar -xzpvf rarlinux-3.2.0.tar.gz
  # cd rar
  # make
  这样就安装好了,安装后就有了rar和unrar这两个程序,rar是压缩程序,unrar是解压程序。它们的参数选项很多,这里只做简单介绍,依旧举例说明一下其用法:
  # rar a all *.jpg
  这条命令是将所有.jpg的文件压缩成一个rar包,名为all.rar,该程序会将.rar扩展名将自动附加到包名后。
  # unrar e all.rar
  这条命令是将all.rar中的所有文件解压出来
  到此为至,我们已经介绍过linux下的tar、gzip、gunzip、bzip2、bunzip2、compress、 uncompress、 zip、unzip、rar、unrar等程式,你应该已经能够使用它们对.tar、.gz、.tar.gz、.tgz、.bz2、.tar.bz2、. Z、.tar.Z、.zip、.rar这10种压缩文件进行解压了,以后应该不需要为下载了一个而不知道如何在Linux下解开而烦恼了。而且以上方法对于Unix也基本有效。
  本文介绍了linux下的压缩程式tar、gzip、gunzip、bzip2、bunzip2、compress、uncompress、 zip、 unzip、rar、unrar等程式,以及如何使用它们对.tar、.gz、.tar.gz、.tgz、.bz2、.tar.bz2、.Z、. tar.Z、.zip、.rar这10种压缩文件进行操作。
Linux Tar命令的详细用法与常见压缩文件类型及解压
语法:tar [主选项+辅选项] 文件或者目录
使用该命令时,主选项是必须要有的,它告诉tar要做什么事情,辅选项是辅助使用的,可以选用。
c 创建新的档案文件。如果用户想一个目录或是一些文件,就要选择这个选项。
r 把要存档的文件追加到档案文件的未尾。例如用户已经作好备份文件,又发现还有一个目录或是一些文件忘记备份了,这时可以使用该选项,将忘记的目录或文件追加到备份文件中。
t 列出档案文件的内容,查看已经备份了哪些文件。
u 更新文件。就是说,用新增的文件取代原备份文件,如果在备份文件中找不到要更新的文件,则把它追加到备份文件的最后。
x 从档案文件中释放文件。
辅助选项:
b 该选项是为磁带机设定的。其后跟一数字,用来说明区块的大小,系统预设值为20(20*512 bytes)。
f 使用档案文件或设备,这个选项通常是必选的。
k 保存已经存在的文件。例如我们把某个文件还原,在还原的过程中,遇到相同的文件,不会进行覆盖。
m 在还原文件时,把所有文件的修改时间设定为现在。
M 创建多卷的档案文件,以便在几个磁盘中存放。
v 详细报告tar处理的文件信息。如无此选项,tar不报告文件信息。
w 每一步都要求确认。
f 这个参数确实是必选的,要不你就找不到你的tar文件
其实用的时候感觉上有些多余,既然它是必选,那就干脆固化到tar这个命令本身就是啊
可是它偏偏不是这样的,如果你不用这个参数,他就告述你什么&文件不存在&的错误
叫人觉得这是一个设计不良的软件(或称命令把)
v 也很重要,通常就能看出详细信息
所以构造tar包通常是用命令
tar cvf tar包名.tar 目录,文件列表
所谓目录文件列表就是以空格形式分割文件和目录
而解tar包通常是命令
tar xvf tar包名.tar 目录,文件列表
tar 文件是几个文件和(或)目录在一个文件中的集合。这是创建备份和归档的佳径。
tar 使用的选项有:
-c — 创建一个新归档。
-f — 当与 -c 选项一起使用时,创建的 tar 文件使用该选项指定的文件名;当与 -x 选项
一起使用时,则解除该选项指定的归档。
-t — 显示包括在 tar 文件中的文件列表。
-v — 显示文件的归档进度。
-x — 从归档中抽取文件。
-z — 使用 gzip 来压缩 tar 文件。
-j — 使用 bzip2 来压缩 tar 文件。
要创建一个 tar 文件,键入:
tar -cvf filename.tar directory/file
可以使用 tar 命令同时处理多个文件和目录,方法是将它们逐一列出,并用空格间隔:
tar -cvf filename.tar /home/mine/work /home/mine/school
上面的命令把 /home/mine 目录下的 work 和 school 子目录内的所有文件都放入当前
目录中一个叫做 filename.tar 的新文件里。
要列出 tar 文件的内容,键入:
tar -tvf filename.tar
要抽取 tar 文件的内容,键入
tar -xvf filename.tar
这个命令不会删除 tar 文件,但是它会把被解除归档的内容
复制到当前的目录下,并保留归档文件所使用的任何
目录结构。譬如,如果这个 tar 文件中包含一个叫做
bar.txt 的文件,而这个文件包含在 foo/ 目录中,那么,
抽取归档文件将会导致在你当前的工作目录中创建
foo/ 目录,该目录中包含 bar.txt 文件
tar 默认不压缩文件。
要创建一个使用 tar 和 bzip 来归档压缩的文件,使用 -j 选项:
tar -cjvf filename.tbz file
以上命令创建了一个归档文件,然后将其压缩为 filename.tbz 文件。如果你使用 bunzip2 命令为 filename.tbz 文件解压,filename.tbz 文件会被删除,继之以 filename.tar 文件。
你还可以用一个命令来扩展并解除归档 bzip tar 文件:
tar -xjvf filename.tbz
要创建一个用 tar 和 gzip 归档并压缩的文件,使用 -z 选项:
tar -czvf filename.tgz file
这个命令创建归档文件 filename.tar,然后把它压缩为 filename.tgz 文件(文件 filename.tar 不被保留)。
如果你使用 gunzip 命令来给 filename.tgz 文件解压,filename.tgz 文件会被删除,并被
替换为 filename.tar。
你可以用单个命令来扩展 gzip tar 文件:
tar -xzvf filename.tgz
下面是网上收录的经典范例
例1:把/home目录下包括它的子目录全部做备份文件,备份文件名为usr.tar。
$ tar cvf usr.tar /home
例2:把/home目录下包括它的子目录全部做备份文件,并进行压缩,备份文件名为usr.tar.gz 。
$ tar czvf usr.tar.gz /home
例3:把usr.tar.gz这个备份文件还原并解压缩。
$ tar xzvf usr.tar.gz
例4:查看usr.tar备份文件的内容,并以分屏方式显示在显示器上。
$ tar tvf usr.tar | more
要将文件备份到一个特定的设备,只需把设备名作为备份文件名。
例5:用户在/dev/fd0设备的软盘中创建一个备份文件,并将/home 目录中所有的文件都拷贝到备份文件中。
$ tar cf /dev/fd0 /home
要恢复设备磁盘中的文件,可使用xf选项:
$ tar xf /dev/fd0
将两个文件打入一个tar包
tar cvf log.tar log. DBVERSION
1.压缩一组文件为tar.gz后缀。
# tar cvf backup.tar /etc
#gzip -q backup.tar
# tar cvfz backup.tar.gz /etc/
tar zxvf XXXX.tar.gz
tar jxvf XXXX tar.bz2
2.释放一个后缀为tar.gz的文件。
#gunzip backup.tar.gz
#tar xvf backup.tar
# tar xvfz backup.tar.gz
3.用一个命令完成压缩
#tar cvf - /etc/ | gzip -qc & backup.tar.gz
4.用一个命令完成释放
# gunzip -c backup.tar.gz | tar xvf -
5.如何解开tar.Z的文件?
# tar xvfz backup.tar.Z
# uncompress backup.tar.Z
#tar xvf backup.tar
6.如何解开.tgz文件?
#gunzip backup.tgz
7.如何压缩和解压缩.bz2的包?
#bzip2 /etc/smb.conf
这将压缩文件smb.conf成smb.conf.bz2
#bunzip2 /etc/smb.conf.bz2
这将在当前目录下还原smb.conf.bz2为smb.conf
注: .bz2压缩格式不是很常用,你可以man bzip2
linux常见压缩文件类型及解压
压缩和打包文件
.bz2 — 使用bzip2命令压缩的文件,可以使用bzip2 -d filename 解包
.gz — 使用gzip命令压缩的文件,可以使用gunzip -d filename 解包
.tar — 使用tar打包的文件,即tarball文件,可以使用tar xf filename 解包
.tbz — 使用tar打完包后再以bzip2命令压缩的文件,可以使用tar jxf filename 解包
.tgz — 使用tar打完包后再以gzip命令压缩的文件,可以使用tar zxf filename 解包
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:257376次
积分:2198
积分:2198
排名:第17478名
原创:26篇
转载:23篇
评论:16条
(16)(5)(1)(1)(6)(5)(4)(1)(5)(1)(3)(1)

我要回帖

 

随机推荐