split
|
|
(divide un file a pezzi) |
split(1) ha come argomento opzionale il nome di un
file o altrimenti legge da stdin. split(1) divide
l'input in tanti altri file che per default hanno nomi che iniziano
tutti per x seguito da un suffisso lessicograficamente
ordinato nell'intervallo aa-zz. Il file originale rimane
inalterato:
$ split file
$ ls
file xaa xab ...
|
|
(divide file in files di 1000
linee) |
$ split -500 file
|
|
(divide file in files di 500
linee) |
Un eventuale secondo parametro dopo il nome del file viene usato
come un prefisso per i nomi dei file nei quali il file viene
diviso:
$ split file piece_
$ ls
file piece_aa piece_ab
|
split(1) è utile quando si deve mandare via email un
allegato che supera il limite consentito per la dimensione dei
messaggi del destinatario: si divide il file già encodato in pezzi
più piccoli che non superano il limite e così non si corre mai il
rischio che la mail venga accorciata. Ad es. se il destinatario ha
un limite di 64 kb per messaggio, e uuencode genera linee lunghe 62
bytes (compreso il finelinea) si ha che:
50000 b / 62 b/linea >= 800 linee
quindi si ha un buon margine di sicurezza dividendo il messaggio
encodato ogni 800 linee, perché dovrebbe sempre risultare:
50000 b + dim. header in byte <= 64 kb
$ uuencode bigfile bigfile >bigfile.uue
$ ls
bigfile bigfile.uue
|
$ split -800 bigfile.uue
$ ls
bigfile xab
bigfile.uue xac
xaa
|
$ mail -s "bigfile.uue 1/3" mybuddy < xaa
$ mail -s "bigfile.uue 2/3" mybuddy < xab
$ mail -s "bigfile.uue 3/3" mybuddy < xac
|
$ rm bigfile.uue x??
|
Il destinatario può rimettere insieme il file salvando i tre
messaggi di email, concatenandoli in ordine, eliminando tutte le
eventuali altre linee tranne quelle uuencodate, e infine lanciando
uudecode(1):
& w 1-3 bigfile.uue
"bigfile.uue" [New file]
& q
|
|
(concatena e salva in
mail(1)) |
$ uudecode bigfile.uue
|
|
(si ottiene bigfile) |
Estensione GNU/FreeBSD: invece di fare dei tentativi per cercare
di determinare ogni quante linee dividere per non superare una
certa dimensione in kb o mb, si può usare il parametro b
seguito da un numero di byte e un moltiplicatore (k per
kb e m per mb). Questo è utile quando si vuole dividere
un file binario la cui lunghezza di linea non è uniforme, al
contrario dei file prodotti da uuencode(1).
|
|