tar 同时避免压缩某些文件类型

per*_*rry 2 tar compression

我正在尝试使用tar. 但是,有许多文件,例如CR2(Canon RAW 2),JPG以及一些其他已压缩的文件。

我已经看到tar使用该--exclude选项从存档本身中排除这些类型的文件,但这不是我想要做的。相反,我想包含这些已经压缩的文件,但跳过对它们的压缩,类似于rsync's 的压缩--skip-compress

这可能吗,如果是,怎么做?

fro*_*utz 5

tar本身没有这个功能,你只能过滤它,这样你就有两个独立的 tar 文件,一个保存压缩文件,另一个保存未压缩文件。这可以使用tar您提到的排除选项来实现,或者通过使用find.

如果您对替代方案持开放态度,则有dar(磁盘存档)可以决定是否单独压缩每个文件(-Z, --exclude-compression <mask>选项)。它还可以恢复存档中的单个文件,而无需解压缩整个文件(直到找到文件),例如tar.

大多数人只是完全忽略了这个问题,并且无论如何都压缩了所有文件。使用快速压缩算法,它没有太大区别。强压缩需要更多数量级的 CPU 时间,而尺寸减少可以忽略不计(ymmv,很大程度上取决于数据)。如果它是一个会被下载很多次的档案,强压缩可能是值得的,否则可能不值得。