标签: compression

三重压缩,我只节省了 1% 的空间?

我一直试图在我的 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.bzip2s的总数仍然是 22GB!使用更精细的精度,节省 1% 的空间!

我在这里做错了吗?我希望能节省 1% 以上的费用!

我还能如何压缩文件?

tar compression gzip bzip2

4
推荐指数
5
解决办法
9125
查看次数

是否有一种压缩方法支持固体压缩并向压缩文件添加数据?

我有一个.tar.xz包含日志文件的大型压缩文件。压缩率很好——但压缩时间很长,如果我想添加额外的日志文件,我必须解压,添加新文件,然后重新压缩——这需要更长的时间并用完很多磁盘空间。

是否有一种存档/压缩方法可以让我有效地将新文件添加到现有存档中,同时仍保留可靠压缩的好处?(即不单独压缩文件,这是什么.zip)。

compression

4
推荐指数
1
解决办法
1353
查看次数

压缩/解压缩 STDIN 的工具

是否有压缩 STDIN 并输出到 STDOUT 的工具?该工具(或其对应工具)也应该能够解压。简单的东西很好,但它必须是无损的。

ubuntu compression stdin

4
推荐指数
1
解决办法
6826
查看次数

解压缩 .gz 文件以获取文本文件但获取二进制文件?

我有一个.gz名为 file.txt 的document.txt.gz文件。它应该是一个被压缩为 gzip 文件的文本文件。当我解压缩时,我得到一个损坏的文件。

我运行了以下命令:

$ file document.txt.gz
Run Code Online (Sandbox Code Playgroud)

结果是

document.txt.gz: gzip compressed data, max speed, from FAT filesystem (MS-DOS, OS/2, NT)
Run Code Online (Sandbox Code Playgroud)

我再次在解压缩的部分上运行文件命令

$ file document.txt.gz
Run Code Online (Sandbox Code Playgroud)

结果是

document.txt: gzip compressed data, last modified: Mon Mar 12 22:16:42 2018, from Unix
Run Code Online (Sandbox Code Playgroud)

我不确定为什么我的未压缩文件仍然是 gzip 压缩数据。

有没有办法找回原始文件?

compression gzip files gunzip

4
推荐指数
1
解决办法
2万
查看次数

Zip/Tar 文件压缩到更大的尺寸?

我有 4 个文件,我想将它们包含在.zip文件中。

drwxr-xr-x  7 skemelio themelis 4,0K ???  18 00:21 CSharp
drwxr-xr-x 11 skemelio themelis 4,0K ???  18 00:17 gnome-games
drwxr-xr-x  8 skemelio themelis 4,0K ???  18 00:17 gnome-music
drwxr-xr-x  4 skemelio themelis 4,0K ???  18 00:18 Test
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,它们的大小总共为 16K。

我正在使用下面的命令创建 zip:

zip -r myfiles.zip *
Run Code Online (Sandbox Code Playgroud)

该文件已成功创建,但现在其大小为20M,如下所示!

drwxr-xr-x  7 skemelio themelis 4,0K ???  18 00:21 CSharp
drwxr-xr-x 11 skemelio themelis 4,0K ???  18 00:17 gnome-games
drwxr-xr-x  8 skemelio themelis 4,0K ???  18 00:17 gnome-music …
Run Code Online (Sandbox Code Playgroud)

tar zip compression

4
推荐指数
1
解决办法
435
查看次数

如何在 btrfs 上为单个文件打开压缩?

我正在使用 GNU 生成 3 TB 驱动器映像ddrescue,并意识到它对于目标驱动器来说太大了(因为空白空间填充了 0xAA 而不是 0x00,所以我没有使用稀疏输出文件,而是需要实际压缩)。

输出文件在 btrfs 文件系统上,它支持按文件压缩,但通过哪种方法?

  1. https://wiki.archlinux.org/index.php/Btrfs#Compression说:

要将压缩应用于现有文件,请使用命令,其中 是,或。例如,要使用 zstd 重新压缩整个文件系统,请运行以下命令:btrfs filesystem defragment -calgalgzliblzozstd

  # btrfs filesystem defragment -r -v -czstd /
Run Code Online (Sandbox Code Playgroud)

这会重新压缩现有文件,但似乎是针对文件文件夹,而不是单个文件?

  1. 它还说:

提示:也可以在不使用compress挂载选项的情况下为每个文件启用压缩;这样做适用 chattr +c于文件。当应用于目录时,它将导致新文件在出现时自动压缩。

不过,目前尚不清楚这是否会重新压缩现有文件。

  1. https://btrfs.wiki.kernel.org/index.php/Compression#Can_I_force_compression_on_a_file_without_using_the_compress_mount_option.3F

在文件上设置压缩属性 usingbtrfs property set <file> compression <zlib|lzo|zstd>强制使用指定算法在该文件上使用压缩。

这似乎是为了强制压缩通常不会被压缩的文件,因为它们包含不是很可压缩的数据?

我想将整个现有文件转换为(默认 LZO)压缩,并继续压缩将来写入其中的任何数据,而不更改卷上其他文件的压缩?

compression btrfs

4
推荐指数
1
解决办法
1695
查看次数

如何从 rar 或 tgz 转换为 squashfs 而无需解压到临时文件夹?

我喜欢使用 squashfs 进行压缩,因为将它们安装为循环设备来访问内部文件很简单。

我有很多 rar、tgz 和 zip 文件,我想将它们转换为 squashfs。

这个答案中,我看到在将磁盘映像压缩到squashfs时可以使用伪文件以避免必须使用整个磁盘大小的临时文件。

mkdir empty-dir
mksquashfs empty-dir squash.img -p 'sda_backup.img f 444 root root dd if=/dev/sda bs=4M'
Run Code Online (Sandbox Code Playgroud)

我想使用伪文件以相同的方式(即时)从 rar、tgz 或 zip 转换为 squashfs,因此我不必首先将整个存档提取到磁盘,然后在单独的操作中压缩到 squashfs 。

其中一些档案包含数千个单独的文件,其中一些文件的文件名中包含空格或其他特殊字符。

我查看了README,我认为我需要使用该-pf <pseudo-file>选项,但我不确定如何动态创建伪文件(并且也不存在带空格的文件名问题)。我想我需要使用进程替换来从源存档创建文件列表。

理想情况下,我希望有一个命令能够转换任何 rar、tgz 或 zip,而不必为每个存档单独创建伪文件,但如果有人可以告诉我如何使用其中一种存档格式来完成此操作,那么希望我能为其他人解决这个问题。

感谢大家。

tar zip compression rar squashfs

4
推荐指数
1
解决办法
2270
查看次数

无法选择压缩程序

使用 tar v1.26 时无法选择压缩程序。

虽然这有效

tar -c -I 'xz' -f foo.tar.xz *
Run Code Online (Sandbox Code Playgroud)

这是行不通的:

tar -c -I 'xz -T0' -f foo.tar.xz *

tar (child): xz -T0: Cannot exec: No such file or directory
tar (child): Error is not recoverable: exiting now
tar: Child returned status 2
tar: Error is not recoverable: exiting now
Run Code Online (Sandbox Code Playgroud)

你有什么想法?

tar compression

4
推荐指数
1
解决办法
924
查看次数

有没有办法重定向写入的文件

我有一个无法更改的应用程序,它写入一个 250 GB 的大纯文本文件。用 GZ 压缩后只有 30 GB。

这个应用程序没有压缩它的输出的选项,它只能写入文件名(而不是标准输出)。

有没有一种方法可以设置立即压缩输出,而无需先将 250 GB 的文件存储在我的磁盘上?

我还需要另一种方式来欺骗应用程序,以便它读取实际上是压缩的纯文本文件。

compression io-redirection

3
推荐指数
1
解决办法
433
查看次数

在 Mint 中解压 .gz 文件时出错,但在 Windows 中运行良好,因此文件未损坏

.csv从 OECD Stats 网站下载了一些文件,因为我需要它们用gnuplot. 当我使用 File Roller 3.4.1(处理存档文件的默认程序)打开它们时,有一个文件似乎是空的(0 字节)。当我在终端上尝试时,我得到:

gunzip Financial\ Indicators\ –\ Stocks.gz

gzip: Financial Indicators – Stocks.gz: invalid compressed data--length error
gzip: Financial Indicators – Stocks.gz has more than one entry -- unchanged
Run Code Online (Sandbox Code Playgroud)

所以该文件似乎已损坏,但我将其发送给使用 Windows 的朋友。他在他的计算机上解压缩了文件并将输出发送给我:它是一个 zip 文件,其中包含两个.csv文件。所以文件没有损坏,肯定是用来处理它们的包有问题。有什么建议吗?

compression gzip

3
推荐指数
1
解决办法
9803
查看次数

标签 统计

compression ×10

tar ×4

gzip ×3

zip ×2

btrfs ×1

bzip2 ×1

files ×1

gunzip ×1

io-redirection ×1

rar ×1

squashfs ×1

stdin ×1

ubuntu ×1