Posible duplicado:
compilar un conjunto de directorios y crear un archivo comprimido de tar
Esta publicación describe cómo comprimir cada archivo individualmente dentro de una estructura de directorio. Sin embargo, necesito hacer algo un poco diferente. Necesito producir un gran archivo gzip para todos los archivos en un determinado directorio. También necesito poder especificar el nombre de archivo de salida para el archivo comprimido (p. Ej., Files.gz) y sobrescribir el antiguo archivo comprimido si ya existe uno.
gzip
por su propia naturaleza, comprime un solo archivo. Para colocar varios archivos en un solo archivo para su posterior gzipping, usetar
.Respuestas:
todo en folderToCompress irá a compressFileName
Editar: Después de la revisión y los comentarios, me di cuenta de que las personas pueden confundirse con compressFileName sin una extensión. Si lo desea, puede usar la extensión .tar.gz (como se sugiere) con el nombre del archivo comprimido.
fuente
compressFileName
para que incluya la.tar.gz
extensión o volverás locos a todos los demás.tar -zcvf two-dirs.tar.gz dir-one dir-two
, creará un archivo que contiene dos directorios.*
para comprimir todo en el directorio actual, es decir:tar -zcvf all.tar.gz *
Hay muchos métodos de compresión que funcionan de forma recursiva en la línea de comandos y es bueno saber quién es el público final.
es decir, si se va a enviar a alguien que ejecute Windows, entonces zip probablemente sería mejor:
para otros usuarios de Linux o tu auto alquitrán es genial
Hay que tener cuidado con el alquitrán y cómo se alquilan / extraen las cosas, por ejemplo, si ejecuto
/ home / myusername
esto creará / home / myusername / etc / passwd
no estoy seguro si todas las versiones de tar hacen esto:
fuente
La publicación de @amitchhajer funciona para GNU tar. Si alguien encuentra esta publicación y la necesita para funcionar en un
GNU
sistema NO , puede hacer esto:Para expandir el archivo:
fuente
pigz
que es más rápido, ya que puede utilizar mejor la CPU (una implementación multiproceso de zip).