A tar
y gzip
una carpeta, la sintaxis es:
tar czf name_of_archive_file.tar.gz name_of_directory_to_tar
El -
con czf
es opcional.
Si quieres tar
el directorio actual, use .
para designar eso.
Para construir nombres de archivo de forma dinámica, use el date
utilidad (mire su página de manual para las opciones de formato disponibles). Por ejemplo:
cd /var/www &&
tar czf ~/www_backups/$(date +%Y%m%d-%H%M%S).tar.gz .
Esto creará un archivo llamado algo así como 20120902-185558.tar.gz
.
En Linux, lo más probable es que su tar
también es compatible con la compresión BZip2 con el j
en lugar de z
opción. Y posiblemente otros. Consulte la página del manual en su sistema local.
Ejemplos de los algoritmos de compresión más comunes
El título de la pregunta para esto es simplemente "¿Comprimir una carpeta con tar?" Dado que este título es muy general, pero la pregunta y la respuesta son mucho más específicas, y debido a la gran cantidad de visitas que ha atraído esta pregunta, sentí que sería beneficioso agregar una lista actualizada de ejemplos de ambos. archivar/comprimir y extraer/descomprimir, con varios algoritmos de compresión de uso común.
Estos han sido probados con Ubuntu 18.04.4. Son muy simples para uso general, pero podrían integrarse fácilmente en los contenidos de preguntas más específicos del OP utilizando las técnicas en la respuesta aceptada y los comentarios útiles anteriores.
Una cosa a tener en cuenta para la audiencia más general es que tar
no agregará las extensiones necesarias (como .tar.gz
) automáticamente:el usuario tiene que agregarlos explícitamente, como se ve en los siguientes comandos:
# 1: tar (create uncompressed archive) all files and directories in the current working directory recursively into an uncompressed tarball
tar cvf filename.tar *
# 2: Untar (extract uncompressed archive) all files and directories in an uncompressed tarball recursively into the current working directory
tar xvf filename.tar
# 3: tar (create gzipped archive) all files and directories in the current working directory recursively into a tarball compressed with gzip
tar cvzf filename.tar.gz *
# 4: Untar (extract gzipped archive) all files and directories in a tarball compressed with gzip recursively into the current working directory
tar xvf filename.tar.gz # Note: same options as 2 above
# 5: tar (create bzip2'ed archive) all files and directories in the current working directory recursively into a tarball compressed with bzip2
tar cvjf filename.tar.bz2 * # Note: little 'j' in options
# 6: Untar (extract bzip2'ed archive) all files and directories in an tarball compressed with bzip2 recursively into the current working directory
tar xvf filename.tar.bz2 # Note: same options as 2 and 4 above
# 7: tar (create xz'ed archive) all files and directories in the current working directory recursively into a tarball compressed with xz
tar cvJf filename.tar.xz * # Note: capital 'J' in options
# 8: Untar (extract xz'ed archive) all files and directories in an tarball compressed with xz recursively into the current working directory
tar xvf filename.tar.xz # Note: same options as 2, 4, and 6 above
Consulte la página de manual de tar (es mejor usar man tar
en su máquina específica) para obtener más detalles. A continuación, resumo las opciones utilizadas anteriormente directamente desde la página del manual:
-c, --crear
crear un nuevo archivo
-x, --extraer, --obtener
extraer archivos de un archivo
-v, --verbose
enumera detalladamente los archivos procesados
-z, --gzip
filtrar el archivo a través de gzip
-j, --bzip2
filtrar el archivo a través de bzip2
-J, --xz
filtrar el archivo a través de xz
-f, --file=ARCHIVO
usar archivo de almacenamiento o dispositivo ARCHIVO
No es necesario agregar el -
delante de las opciones combinadas, o el =
firmar entre el f
opción y el nombre del archivo.
Obtuve todo esto de mi artículo reciente, que se ampliará en un artículo mucho más completo a medida que tenga tiempo para trabajar en él.