首页 > 解决方案 > 如何使用 gzip 有效地将许多小文件压缩成许多小的 .tar.gz 文件?

问题描述

我有数百万个 *.csv 小文件,我想用 gzip 压缩它们。

用gzip循环压缩它们是可以的,但是效率不够。

我想知道是否有办法有效地做到这一点?通过多处理或其他方式?

标签: pythonlinuxshellgziptar

解决方案


根据Charles Duffyzstd评论使用:

cd csvdir  # go to where the million .csv files are
zstd --train `find . -name '*.csv' | shuf -n 100`
mv dictionary csv.dict
zstd -T$(nproc) -9 -D csv.dict -o csvfiles.zstd *.csv

这会从一百个.csv文件的随机样本中创建一个字典,然后使用所有 CPU 的内核将这百万个文件有效地压缩为csvfiles.zstd


推荐阅读