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 directory
si el cambio de línea de comando como --file-filter
no 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 unxz
archivo 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 elloscpio
tan pronto como se agregan al archivo, se eliminan.fuente
pigz
como 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.gz
fuente
|gzip
y el archivo sin comprimir básicamente no tocó el HDD, por lo que en mi humilde opinión no debería ser TAN lento.tar
archivo gzip como objeto.