¿Hay alguna forma rápida de verificar si un archivo comprimido está vacío, o tengo que descomprimirlo primero?
ejemplo:
$ touch foo
$ if [ -s foo ]; then echo not empty; fi
$ gzip foo
$ if [ -s foo.gz ]; then echo not empty; fi
not empty
$ wc -l foo.gz
1 foo.gz
command-line
bash
gzip
dogbane
fuente
fuente

LC_ALL=Cque existe para garantizar que gzip no ponga miles de separadores en números para que el campo se pueda comparar con cero.LC_ALL=Cno puede hacer daño.readse invoca en una subshell (y$lineno se propaga al padre).trarregla eso.Si por 'vacío' quiere decir que el archivo sin comprimir tiene 0 bytes, podría usarlo
gzip --list foo.gzpara determinar el tamaño del archivo sin comprimir, requeriría algún análisis para automatizarlo. Se parece a esto:fuente
O con
if:zcata veces está vinculadogunzip -caogzip -cd, si desea usarlo como el "formulario" más corto.fuente
Tenga en cuenta que el formato de archivo gzip solo permite 32 bits para almacenar el tamaño del archivo original, por lo que el número allí es el módulo de tamaño 2 ^ 32. Por lo tanto, el tamaño dado por "gzip -l" no es una prueba definitiva de vacío.
fuente