ACa*_*ter 4 tar compression gzip bzip2
我一直试图在我的 linux 服务器上节省空间,我有一个文件夹,在子文件夹中包含 22GB 的图像。
所以我决定压缩它们。
首先我使用焦油:
tar -zcf folder.tar folder
Run Code Online (Sandbox Code Playgroud)
然后gzip
gzip folder
Run Code Online (Sandbox Code Playgroud)
最后,为了以防万一,bzip2
bzip2 folder
Run Code Online (Sandbox Code Playgroud)
毕竟,所有folder.tar.gz.bzip2
s的总数仍然是 22GB!使用更精细的精度,节省 1% 的空间!
我在这里做错了吗?我希望能节省 1% 以上的费用!
我还能如何压缩文件?
Bra*_*ley 33
压缩比非常依赖于您要压缩的内容。文本压缩得如此之好的原因是因为它甚至没有开始充分利用同一二进制空间中可表示的所有数字范围。因此,这种格式(例如压缩文件)可以通过使用所有那些在文本编码中毫无意义的二进制数来在更少的空间中存储相同的信息,并且可以在单个字节中有效地表示整个字符序列并获得良好的压缩率那样。
如果文件已经被压缩,您通常不会看到再次压缩它们有多大好处。如果这实际上为您节省了额外的空间,则可能表明第一种压缩算法很糟糕。从问题的性质来看,我将假设其中很多是媒体文件,因此已经被压缩(尽管使用优先考虑解压缩速度的算法),因此您可能不会从中得到太多。有点像石头场景中的血液:它们已经尽可能地小而不会丢失信息。
如果我非常担心空间,我只会做一个“bzip2 -9”并称其为好。不过,我听说过关于 XZ 比率的好消息。我自己没有使用过 XZ(除了解压别人的东西),但它的比率应该比 bzip2 更好,但压缩/解压需要更长的时间。
Mar*_*rco 14
您的压缩尝试失败,因为您的数据已经被高度压缩并且没有更多的收获,请参阅其他答案以获取更详细的解释。但是,如果您同意有损压缩,与您之前尝试的无损相比,您可以显着压缩图像。但是由于数据被切掉了,所以无法撤消。
这是一个使用 imagemagick 重新压缩所有 JPEG 图像的示例。请注意,这将覆盖您的文件。
find image_directory -type f -name "*.jpg" -exec mogrify -quality 75% {} \+
Run Code Online (Sandbox Code Playgroud)
1)许多图像和视频格式都已经被压缩,所以它是非常小的一些其他程序对其进行压缩来获得。对于 JPEG 尤其如此。对于非常小的图片(以字节为单位) - 或者更确切地说是包含许多小图片的大型存档 - 可能需要保存相当多的内容,但一般来说,JPEG 文件会尽可能压缩。
2)尝试重复压缩相同的数据通常是一个坏主意;无论是压缩已经优化的文件类型(例如对 jpeg 文件进行 gzip 压缩),还是将不同或相同的压缩程序串行应用于同一文件(如您所做的那样)。
3) 压缩文件时,有时会得到比原来更大的文件(使用 touch 创建一个空文件,然后尝试将其 bzip2)。必须这样;因为否则你将能够获取一些数据,一次又一次地压缩它,直到只剩下一个空文件,然后仍然能够解压缩回原始数据 - 但这听起来合乎逻辑吗?
它通常压缩已经优化(如 jpeg)或已经压缩的数据,这将导致这种增长,特别是多次对数据使用相同的压缩程序。
4) 保存数据的最佳方法,是找到为您拥有的任何数据提供最佳增益的压缩程序(因为增益可能因数据而异);并且只使用那个压缩程序并且只使用一次——但它是最好的(通常是最慢和最需要资源的)设置。目前“最好的”(获得最大收益)压缩程序可能是 xzip,尽管 bzip2 也不甘落后。确保选择最佳压缩率。
5)对于图像(如 jpeg),您经常使用“有损”压缩 - 即。您会丢失一些数据(与使用 xzip、bzip2 和 gzip 等无损程序时不同)。反复的JPEG压缩图像将为此使每个它的使用(不像使用类似bzip2的两倍)时的图像较小,但你将图像中的细节松动。您还可以对图像执行其他操作 - 例如更改尺寸(使其更小)或分辨率(每英寸更少的像素) - 这将使其“更小”,但同样会丢失数据。
因此,如果图片的质量不是那么重要并且您绝对想节省空间,那么使用 ImageMagic 之类的程序对所有图像进行批处理并使它们更小、更不详细和/或使用更高的 jpeg 压缩可能会为您节省很多的空间。 但它会是有损的,并且您的图片会丢失细节。
6)有点过时了,但是你有没有看过像缩略图目录这样的东西 - 比如 ~/.thumbnails ?如果您的目录中有很多图片并使用带有图片预览的文件浏览器,.thumbnails 可能包含您在某个时间浏览过的大量图片缩略图。就我个人而言,通过定期删除缩略图的各种隐藏位置下的文件,我获得了大量磁盘空间......
另一点值得提出:使用多种压缩工具/算法实际上可能会导致您的最终结果膨胀并变得比需要的更大。这意味着如果您将 100GB 压缩到 10GB,然后尝试再次压缩它,您最终可能会得到 ~15GB,具体取决于您压缩的内容和压缩的内容。
就我个人而言,我从不做任何事情,tar cjvf container.tar.bz2 /target
只是因为双重压缩节省的磁盘空间很小。
归档时间: |
|
查看次数: |
9125 次 |
最近记录: |