Ich muss ein ziemlich großes Verzeichnis sichern, bin aber durch die Größe der einzelnen Dateien begrenzt. Ich möchte im Wesentlichen einen tar.(gz|bz2)
erstellen Archiv, das in maximal 200 MB große Archive aufgeteilt ist. Clonezilla macht etwas Ähnliches, indem es Image-Backups mit folgenden Namen aufteilt:
sda1.backup.tar.gz.aa
sda1.backup.tar.gz.ab
sda1.backup.tar.gz.ac
Gibt es eine Möglichkeit, dies in einem Befehl zu tun? Ich verstehe, wie man split
verwendet Befehl, aber ich möchte nicht ein riesiges Archiv erstellen und es dann in kleinere Archive aufteilen, da dies den Speicherplatz verdoppeln würde, den ich für die anfängliche Erstellung des Archivs benötige.
Akzeptierte Antwort:
Sie können tar an den Split-Befehl weiterleiten:
tar cvzf - dir/ | split --bytes=200MB - sda1.backup.tar.gz.
Auf einigen *nix-Systemen (wie OS X) erhalten Sie möglicherweise die folgende Fehlermeldung:
split: illegal option -- -
Versuchen Sie in diesem Fall Folgendes (beachten Sie die -b 200m
):
tar cvzf - dir/ | split -b 200m - sda1.backup.tar.gz.
Wenn Sie versuchen, die Datei aufzuteilen, damit sie auf ein FAT32-formatiertes Laufwerk passt,
verwenden Sie eine Byte-Grenze von 4294967295. Beispiel:
tar cvzf - /Applications/Install macOS Sierra.app/ |
split -b 4294967295 - /Volumes/UNTITLED/install_macos_sierra.tgz.
Wenn Sie die Dateien extrahieren möchten, verwenden Sie den folgenden Befehl (wie von @Naftuli Kay kommentiert):
cat sda1.backup.tar.gz.* | tar xzvf -