GNU tar 可以在将文件添加到存档之前运行过滤器吗?

GNU tar 可以在将文件添加到存档之前运行过滤器吗?

我正在尝试归档一个包含许多子目录和文件的目录,其中大部分是 JPEG 文件。我想运行每个文件JPEGXL在添加到 tar 存档之前,以减少存档文件的存储要求。

我想使用 GNU tar 作为存档器,但我找不到任何方法要求 tar 在将每个文件添加到存档之前对每个文件运行命令。我知道--to-commandGNU tar 的选项;我想要一些功能相同但相反的东西。

一种解决方案是对所有 JPEG 文件运行 JPEG XL 作为批量预处理步骤,然后运行tar结果。但是,这会生成大量要存储的中间文件,我更愿意将这些文件逐个流式传输到tar.

我知道我也许能够使用find来匹配每个文件和目录,并将每个文件和目录传递给一个执行压缩的脚本,然后用于tar --append一次一个文件地生成一个 tar 存档,但是我想要将生成的 tar 文件通过管道传输到split,并且我认为这种方法会导致至少一次额外传递所有数据。

相关内容