Puoi usare split per questo:
tar czpvf - /path/to/archive | split -d -b 100M - tardisk
Questo dice a tar di inviare i dati a stdout e split per prelevarli da stdin - utilizzando inoltre un suffisso numerico (-d
), una dimensione del blocco (-b
) di 100M e usando 'tardisk' come base per i nomi dei file risultanti (tardisk00, tardisk01, tardisk02, ecc.).
Per estrarre i dati in seguito puoi usare questo:
cat tardisk* | tar xzpvf -
Dai un'occhiata al --new-volume-script
opzione, che consente di sostituire il meccanismo di richiesta con un meccanismo diverso o con un nome file generato. ((tar.info)Multi-Volume Archives
nel tar
info page.) Il problema con split
è che devi cat
i pezzi si ricompongono per fare qualsiasi cosa, mentre un archivio multivolume dovrebbe essere un po' più flessibile.
Ovviamente l'opzione migliore da usare è --new-volume-script
opzione.
Ma, se conosci la dimensione del file (in questo caso, largefile.tgz), puoi fare anche questo:
tar -c -M -L 102400 --file=disk1.tar --file=disk2.tar --file=disk3.tar largefile.tgz
Sommario:
-c = Create
-M = multi-volume
-L 102400 = 100MB files (disk1.tar, disk2.tar, disk3.tar ...)
(Per -L, specifica quanti ne servono in modo che la somma totale dei file tar sia maggiore di largefile.tgz)
Se stai provando a tar
una struttura ad albero di directory