Comando para 'gzip' una carpeta?

66

Soy nuevo en el símbolo del sistema Mac. ¿Cómo se crea un gzip de una carpeta en Mac OS X? Algunas personas me dijeron que si desea crear un gzip de una carpeta, primero debe 'tar' y luego 'gzip'. ¿Es esto correcto?

Thndrkiss
fuente
1
Esta no es una pregunta de programación? Tu publicación está etiquetada objective-cpero estás preguntando sobre la línea de comandos.
rakuo15

Respuestas:

130

Tar es la herramienta de archivo y gzip es la herramienta de compresión. Para comprimir un directorio completo, primero debe archivarlo en un solo archivo. De eso se trata el alquitrán. y luego comprimes el archivo archivado. Puede realizar ambas tareas en un solo comando tar con la opción adecuada.

tar -czf nombre_carpeta.tar.gz nombre_carpeta /

Si no desea crear un archivo tar (puede ser que desee comprimir solo un archivo), puede usar el comando gzip directamente.

gzip file.txt

Creará un archivo comprimido llamado file.txt.gz

taskinoor
fuente
30
Vale la pena mencionar para qué son las opciones -czfposteriores tar: cindica que desea crear un archivo tar, se zaplica gzipen el archivo tar intermedio y fes para el nombre de archivo final posterior folder_name.tar.gz.
fideli
13
Advertencia: gzip file.txtreemplaza el archivo original.
Zoltán
66
@ Zoltán Se usa gzip -k file.txtpara "mantener" (no eliminar) el archivo de entrada.
Thohl
13

Si alguien todavía encuentra esta pregunta cuando busca "gzip en Mac", escribí una guía que puede ser útil para otra persona. Aquí va:

Apresamiento

El comando más básico comprimirá el archivo filename.exty luego lo reemplazará filename.ext.gzen el mismo directorio.

gzip filename.ext

Si no desea perder su archivo original, debe canalizar la salida gzip -ca un archivo.

gzip -c filename.ext > anotherfile.gz

También podemos comprimir desde la entrada estándar, por lo que podemos comprimir la salida de otros comandos.

cat filename.ext | gzip > anotherfile.gz

OS X también viene con los comandos compressy uncompress. Hacen un gzip "más inteligente", ya que no comprime el archivo si creciera después del proceso de compresión. El siguiente comando reemplaza filename.extcon filename.ext.Zen el mismo directorio.

compress filename.ext

Descomprimir

Para restaurar un archivo a su estado natural sin comprimir, puede usar gzip u otro de los contenedores. El modo de descompresión de gzip se llama con la -dbandera. Este modo reemplazará el archivo filename.ext.gzcon filename.exten el mismo directorio. También hay un atajo llamado gunzipque hará lo mismo.

gzip -d filename.ext.gz
gunzip filename.ext.gz

También podemos canalizar el archivo descomprimido a la salida estándar para guardarlo en otro archivo.

gzip -cd filename.ext.gz > anotherfile
gunzip -c filename.ext.gz > anotherfile

Otra forma rápida de leer el contenido de un gzip en la salida estándar es zcat, básicamente, es lo mismo que llamar, gzip -cdpero puede llamar a varios archivos y hacer que se concatenen de la misma manera que el catcomando concatena archivos de texto. El único inconveniente es que sus archivos deben tener el sufijo con el .Zsufijo para que funcione ...

zcat filename.ext.Z
zcat file_a.Z file_b.Z file_c.Z

Pero no temas! zcatsigue siendo útil porque puede descomprimirse de la salida estándar. Por lo tanto, básicamente puede canalizar sus archivos a zcat para descomprimirlos en la ventana de terminal.

cat filename.ext.gz | zcat

Esto es muy útil si necesita verificar el contenido de un archivo realmente rápido, e incluso puede guardar la salida de zcat en un archivo, de la misma manera.

cat filename.ext.gz | zcat > anotherfile

El uncompresscontenedor funciona como gzip -cdpero busca archivos con la extensión .Z para reemplazarlos en el directorio actual, por lo que solo necesita especificar el nombre del archivo que desea restaurar, pero está bien si lo llama con la extensión .Z, como el programa lo ignorará.

compress filename.ext
uncompress filename.ext

Espero que encuentre útil mi guía :)

Pablo Albornoz
fuente
4

MacOS X es Unix, así que esto debería funcionar (esto funciona en GNU / Linux)

carpeta tar czvf compressed.tar.gz
jcubic
fuente
3

Sí, primero debe hacer el directorio tar. El comando tar puede hacer ambas cosas:

tar -czf archiv.tar.gz mydir/

extraer su archivo:

tar -xzf archiv.tar.gz
Hasta Freier
fuente
3

Para agregar a la respuesta de @taskinoor: si usa la versión de un solo archivo, también conocido como

gzip file.txt

tenga en cuenta que el archivo original (file.txt) se eliminará y solo tendrá file.txt.gz

Pondría esto como comentario pero no tengo suficiente karma para hacer eso: =)

Miro A.
fuente
1
gzip --keep file.txtmantendrá el original y creará file.txt.gz. Ver gzip --help.
Blaise
1

Si eso es correcto. gzipsolo puede comprimir un archivo. tarcodifica el contenido del directorio en un único archivo, que puede ser comprimido adicionalmente utilizando gzip, bzip2, lzmao cualquier otra cosa.

Roman Cheplyaka
fuente