Ho bisogno di eseguire il backup di una directory abbastanza grande, ma sono limitato dalle dimensioni dei singoli file. In sostanza, vorrei creare un tar.(gz|bz2)
archivio che è suddiviso in archivi di massimo 200 MB. Clonezilla fa qualcosa di simile suddividendo i backup delle immagini denominati in questo modo:
sda1.backup.tar.gz.aa
sda1.backup.tar.gz.ab
sda1.backup.tar.gz.ac
C'è un modo per farlo in un comando? Capisco come usare la split
comando, ma vorrei non dover creare un archivio gigante, quindi dividerlo in archivi più piccoli, poiché ciò raddoppierebbe lo spazio su disco necessario per creare inizialmente l'archivio.
Risposta accettata:
Puoi reindirizzare tar al comando split:
tar cvzf - dir/ | split --bytes=200MB - sda1.backup.tar.gz.
Su alcuni sistemi *nix (come OS X) potresti ricevere il seguente errore:
split: illegal option -- -
In tal caso, prova questo (nota il -b 200m
):
tar cvzf - dir/ | split -b 200m - sda1.backup.tar.gz.
Se stai tentando di dividere il file per adattarlo a un'unità formattata FAT32,
utilizza un limite di byte di 4294967295. Ad esempio:
tar cvzf - /Applications/Install macOS Sierra.app/ |
split -b 4294967295 - /Volumes/UNTITLED/install_macos_sierra.tgz.
Quando vuoi estrarre i file usa il seguente comando (come ha commentato @Naftuli Kay):
cat sda1.backup.tar.gz.* | tar xzvf -