Sie können dafür split verwenden:
tar czpvf - /path/to/archive | split -d -b 100M - tardisk
Dies weist tar an, die Daten an stdout zu senden und sie aufzuteilen, um sie von stdin auszuwählen - zusätzlich mit einem numerischen Suffix (-d
), eine Chunk-Größe (-b
) von 100 MB und Verwendung von 'tardisk' als Basis für die resultierenden Dateinamen (tardisk00, tardisk01, tardisk02 usw.).
Um die Daten nachträglich zu extrahieren, können Sie Folgendes verwenden:
cat tardisk* | tar xzpvf -
Schauen Sie sich die --new-volume-script
an Option, mit der Sie den Eingabeaufforderungsmechanismus durch einen anderen Mechanismus oder durch einen generierten Dateinamen ersetzen können. ((tar.info)Multi-Volume Archives
im tar
Infoseite.) Das Problem mit split
ist, dass Sie cat
benötigen die Stücke wieder zusammen zu tun, wohingegen ein mehrbändiges Archiv etwas flexibler sein sollte.
Die beste Option ist natürlich die --new-volume-script
Option.
Wenn Sie jedoch die Größe der Datei kennen (in diesem Fall largefile.tgz), können Sie dies auch tun:
tar -c -M -L 102400 --file=disk1.tar --file=disk2.tar --file=disk3.tar largefile.tgz
Zusammenfassung:
-c = Create
-M = multi-volume
-L 102400 = 100MB files (disk1.tar, disk2.tar, disk3.tar ...)
(Geben Sie für -L so viele wie nötig an, damit die Gesamtsumme der tar-Dateien größer als largefile.tgz ist)
Wenn Sie versuchen, tar
eine Verzeichnisbaumstruktur