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
gzipno es zip. Son herramientas diferentes que funcionan de manera diferente.
roaima
3
gzipEs solo un compresor de corriente. No sabe sobre archivos o directorios.
3
¿Por qué no puedes usar alquitrán?
marcelm
Si no tienes alquitrán, ¿tienes cpio?
Rup
2
Dices que quieres crear un archivo, pero no puedes usar tar. Usted sabe que parte de la palabra "alquitrán" proviene de "ARchive". Quiero decir, esa es su razón de ser. ¿Quién o qué querría excluir "tar" de un proceso de creación de archivo? Básicamente, se pregunta cómo clavar un tornillo con un martillo (no un destornillador, es necesario).
Mike S
Respuestas:
6
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.
¿Por qué el primer método debe ser estúpido? Esta es la forma habitual de producir .tar.gz...
rexkogitans
Bueno, estúpido probablemente no sea el término correcto, pero en lugar de usar gzip, si puedes usar tar con la opción c. Es más simple, y no creo que el alquitrán de gzip tenga una ventaja.
SPRBRN
Gzip puede funcionar para múltiples archivos con la opción -r, pero creará un nuevo .gz para cada archivo en la carpeta.
Luciano Andress Martini
1
@rexkogitans: es estúpido de la misma manera que cat filename | grep blahes 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.
Mike S
Oh, ahora veo lo que es tan estúpido. No, `tar -czf` es el camino a seguir, ya que no implica un inútil fork().
rexkogitans
13
gzipfunciona 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):
si uno tiene un sistema "antiguo" sin la opción "-z", pueden hacer lo siguiente: 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 -
Olivier Dulac
1
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.gzip
Es solo un compresor de corriente. No sabe sobre archivos o directorios.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.
fuente
.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 usartar
(que creará un único tarball de múltiples archivos):o, para un archivo comprimido:
fuente
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.
En segundo lugar, comprimirá todos los archivos del directorio de forma recursiva (-r).
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
fuente