GNU/Linux >> Tutoriales Linux >  >> Linux

¿Crear un archivo Tar dividido en bloques de un tamaño máximo?

Necesito hacer una copia de seguridad de un directorio bastante grande, pero estoy limitado por el tamaño de los archivos individuales. Básicamente, me gustaría crear un tar.(gz|bz2) archivo que se divide en archivos de 200 MB como máximo. Clonezilla hace algo similar a esto al dividir las copias de seguridad de imágenes nombradas así:

sda1.backup.tar.gz.aa
sda1.backup.tar.gz.ab
sda1.backup.tar.gz.ac

¿Hay alguna manera de que pueda hacer esto en un solo comando? Entiendo cómo usar la split comando, pero me gustaría no tener que crear un archivo gigante y luego dividirlo en archivos más pequeños, ya que esto duplicaría el espacio en disco que necesitaría para crear inicialmente el archivo.

Respuesta aceptada:

Puede canalizar tar al comando dividir:

tar cvzf - dir/ | split --bytes=200MB - sda1.backup.tar.gz.

En algunos sistemas *nix (como OS X) puede recibir el siguiente error:

split: illegal option -- -

En ese caso, intente esto (tenga en cuenta el -b 200m ):

tar cvzf - dir/ | split -b 200m - sda1.backup.tar.gz.

Si intenta dividir el archivo para que quepa en una unidad con formato FAT32,
utilice un límite de bytes de 4294967295. Por ejemplo:

tar cvzf - /Applications/Install macOS Sierra.app/ | 
split -b 4294967295 - /Volumes/UNTITLED/install_macos_sierra.tgz.

Cuando desee extraer los archivos, use el siguiente comando (a partir del comentario de @Naftuli Kay):

cat sda1.backup.tar.gz.* | tar xzvf -

Linux
  1. ¿División de la salida en nuevas líneas?

  2. ¿Cómo comprimir varios archivos en un archivo .xz?

  3. 10 ejemplos de comandos Tar en Linux para crear y extraer archivos

  4. Comando tar de Linux

  5. Ejemplos de Linux cpio:cómo crear y extraer archivos cpio (y archivos tar)

Comando tar en Linux con ejemplos

Comando Tar en Linux (Crear y Extraer Archivos)

Cómo crear un archivo Tar Gz

Tar Vs Zip Vs Gz:diferencia y eficiencia

Crear archivos de tamaño personalizado en Linux

¿Cómo puedo crear un archivo tar de varias partes en Linux?