Por favor encuentre los detalles de mi sistema operativo:
$ uname -a
AIX xxyy 1 6 000145364C00
He intentado el siguiente comando para obtener el tamaño de un archivo en el archivo gzip:
$ gzip -l mycontent.DAT.Gz
compressed uncompr. ratio uncompressed_name
-1223644243 1751372002 -75.3% mycontent.DAT.Gz
No estoy seguro de cómo interpretar el tamaño descomprimido de esto. Tamaño de archivo comprimido cercano a 4 GB.
Entonces, probé esta opción para capturar datos correctos:
$ zcat mycontent.DAT.Gz | wc -c
Me da este error:
mycontent.DAT.Gz.Z:A file or directory in the path name does not exist.
0
¿Puede decirme cómo capturar este valor del script de shell sin descomprimir el archivo fuente?
Respuestas:
Para responder el título de la pregunta:
Como obviamente sabe, la opción
-l
(--list
) generalmente muestra el tamaño sin comprimir.Lo que muestra no se calcula a partir de los datos, sino que se almacenó en el encabezado como parte del archivo comprimido.
En su caso, la
-l
opción no funciona por alguna razón.Pero no es posible 'medir' el tamaño sin comprimir de los datos comprimidos sin procesar, simplemente no hay información sobre nada más en los datos comprimidos, lo cual no es sorprendente, ya que el punto de compresión es omitir todo lo que no sea necesario.
No es necesario que almacene los datos sin comprimir en el disco:
zcat file.gz | wc -c
es el enfoque correcto, pero como respondió @OleTange,zcat
parece que no es el degzip
.La alternativa es usar las
gzip
opciones-d
(--decompress
) y-c
(--to-stdout
), combinadas con lawc
opción-c
(--bytes
):fuente
-l
opción tiene un error para archivos de más de 4 GB: bugs.debian.org/cgi-bin/bugreport.cgi?bug=149775Tu
zcat
no es GNU zcat sino de compresa. Tratar:fuente
gzip -l no funcionó para mí, solo git -1 ... pero esto sí:
fuente
Estoy encontrando todos los sitios en la web, y no resuelvo este problema al obtener el tamaño cuando el tamaño del archivo es mayor de 4 GB.
mi solución es esta :
para obtener el tamaño total del archivo gz:
fuente