Tengo que crear un archivo con el comando gzip (no tar, es necesario) y el archivo debe contener archivos de otro directorio, por ejemplo, / etc. Traté de usar el comando
gzip myetc.gz /etc
Pero no funcionó.
Tengo que crear un archivo con el comando gzip (no tar, es necesario) y el archivo debe contener archivos de otro directorio, por ejemplo, / etc. Traté de usar el comando
gzip myetc.gz /etc
Pero no funcionó.
Respuestas:
Gzip solo funciona con un solo archivo o una secuencia: datos canalizados a gzip. Por lo tanto, primero debe generar un archivo, como con tar, y luego puede descomprimirlo. La otra opción es comprimir todos los archivos individuales y luego guardarlos en un solo archivo.
Ambas soluciones son estúpidas y no deben usarse. Debe usar tar con la opción de compresión integrada y hacerlo todo en un comando.
.tar.gz
...
cat filename | grep blah
es estúpido. También es mucho menos que óptimo porque usaría un gran espacio intermedio. No sé si lo llamaría estúpido tanto como injustificado, subóptimo y, en general, un poco feo. Bueno, la estupidez también funciona.
fork()
.
gzip
funciona con archivos, no directorios. Por lo tanto, para crear un archivo de un directorio que necesita usar tar
(que creará un único tarball de múltiples archivos):
tar cvf myetc.tar /etc
o, para un archivo comprimido:
tar cvzf myetc.tar.gz /etc
cd / ; tar cf - ./etc | gzip -c - > myetc.tar.gz
(si se pregunta por qué tar "./etc" en lugar de "/ etc", es porque en esos sistemas más antiguos, cuando se usa tar xvf, saldrá a / etc y lo sobrescribirá ... [o debe usar "pax" en ese caso]). Comando inverso, es decir, extraer ese archivo debajo de "/ en algún lugar": cd /somewhere ; gzip -dc < /the/location/of/myetc.tar.gz | tar xvf -
Si realmente no tiene alquitrán disponible, puede usar gzip para crear una copia de seguridad de un directorio usando la opción (-r - recursivamente), pero tal vez no sea exactamente lo que espera ...
Primero deberá copiar su directorio a otro nombre, si desea mantener el directorio original intocable.
#cp -a directory my_gzip_alone_backup
En segundo lugar, comprimirá todos los archivos del directorio de forma recursiva (-r).
#gzip -r my_gzip_alone_backup
Ahora echemos un vistazo al interior de my-gzip-alone-backup. No tendrá un solo archivo myfile.gz como espera, sino muchos archivos gziped de forma recursiva. Pero no es bueno hacer eso con etc. debido a los enlaces simbólicos ...
Para descomprimir el directorio, se puede aplicar la misma lógica con gunzip.
Otra forma es convertir el directorio en un solo archivo, si no tiene tar para hacerlo, pero tiene la utilidad dd, como se demuestra en esta publicación: /ubuntu/626634/converting-a -archivo-a-directorio
gzip
no eszip
. Son herramientas diferentes que funcionan de manera diferente.