K tomu můžete použít split:
tar czpvf - /path/to/archive | split -d -b 100M - tardisk
To říká tar, aby odeslal data do stdout a rozdělil je, aby je vybral ze stdin - navíc pomocí číselné přípony (-d
), velikost bloku (-b
) 100 M a pomocí 'tardisk' jako základu pro výsledné názvy souborů (tardisk00, tardisk01, tardisk02 atd.).
K následné extrakci dat můžete použít toto:
cat tardisk* | tar xzpvf -
Podívejte se na --new-volume-script
možnost, která vám umožní nahradit mechanismus výzvy jiným mechanismem nebo vygenerovaným názvem souboru. ((tar.info)Multi-Volume Archives
v tar
informační stránku.) Problém s split
je, že potřebujete cat
části zase dohromady, aby mohly dělat cokoli, zatímco vícesvazkový archiv by měl být o něco flexibilnější.
Samozřejmě nejlepší volbou je --new-volume-script
možnost.
Ale pokud znáte velikost souboru (v tomto případě largefile.tgz), můžete to udělat také:
tar -c -M -L 102400 --file=disk1.tar --file=disk2.tar --file=disk3.tar largefile.tgz
Shrnutí:
-c = Create
-M = multi-volume
-L 102400 = 100MB files (disk1.tar, disk2.tar, disk3.tar ...)
(Pro -L zadejte tolik, kolik je potřeba, aby celkový součet souborů tar byl větší než largefile.tgz)
Pokud se pokoušíte tar
stromová struktura adresářů