Tengo alrededor de 2 millones (60GiB) de archivos pequeños comprimidos y me gustaría crear un archivo comprimido que contenga todos ellos en una versión sin comprimir. Desafortunadamente, no puedo descomprimirlos todos y luego crear el archivo comprimido ya que solo tengo alrededor de 70GiB de espacio libre en disco. En otras palabras, ¿cómo puedo hacer un equivalente de tar --file-filter="zcat" zcf file.tar.gz directorysi el cambio de línea de comando como --file-filterno existe en GNU tar?
tar
disk-usage
compression
large-files
d33tah
fuente
fuente

gzip? Combinar y comprimir ahorra espacio, pero ganaría mucho más si comprimiera en unxzarchivo tar editado. ¿Es esa una opción?Respuestas:
Una opción podría ser usar
avfs(suponiendo aquí un sistema GNU):fuente
Tenga en cuenta que esto es frágil cuando se trata de nombres de archivos desagradables.
Los archivos se descomprimen temporalmente debajo
$tmpdir, se pasan a elloscpiotan pronto como se agregan al archivo, se eliminan.fuente
pigzcomo alternativa a gzip :)Esto es lo que probé hasta ahora: parece funcionar, pero es terriblemente lento, incluso con PyPy:
Uso:
find . | script.py | gzip > file.tar.gzfuente
|gzipy el archivo sin comprimir básicamente no tocó el HDD, por lo que en mi humilde opinión no debería ser TAN lento.tararchivo gzip como objeto.