Linux: Dividere un file in più parti

Tux by Kami23 - tux.crystalxp.net/en.id.12292-working-tux.html Fin dai miei primi giorni di utilizzo del PC ho sentito il bisogno di un’utility che fosse in grado di “spezzare” un file di grandi dimensioni in più files piccoli così da poterli spedire più agevolmente come allegati email o memorizzarli su supporti di archiviazione con capienza limitata.   
Ricordo che ai tempi dell’MS DOS per questo scopo utilizzavo il gestore di archivi ARJ, era in grado di creare archivi divisi in volumi di grandezza scelta dall’utente. Poi con windows ho iniziato ad usare Winzip e Winrar. Questi programmi offrivano anche il vantaggio di comprimere il file di partenza così da risparmiare spazio.
Allo stato attuale questo bisogno è meno pressante dato che l’enorme sviluppo nel campo dei supporti di memorizzazione ha portato ad avere unità in grado di archiviare diverse centinaia di gigabytes di dati in un volume paragonabile ad una decina di vecchi floppy da 1.44 MB. Nonostante ciò può sempre presentarsi la necessità di dividere un grosso file in più parti, in particolar modo se lo si deve inviare in internet.
Avrei potuto seguire la tradizione e continuare ad utilizzare un gestore di archivi compressi anche sotto Linux, in questo caso la scelta sarebbe ricaduta inevitabilmente su Tar. Poi ho scoperto quasi per caso l’esistenza di 2 utility da riga di comando adatte a questo scopo presenti pressoché su ogni distribuzione Linux: “Split” per dividere e l’onnipresente “Cat” per riunire le parti.

Vediamo in dettaglio il loro funzionamento.

Split (dall’inglese dividere) appunto divide un file in più parti di uguale dimensione.
Sintassi:
split modalità dimensione fileorigine filedestinazione-

Il comando split creerà quindi un certo numero (dipendente dalla dimensione scelta) di files con nome filedestinazione-aa, filedestinazione-ab, filedestinazione-ac etc etc.

Modalità: -b (blocks) per dividere un file in base al numero di blocchi, -l (lines) per il numero di righe (utile per file di testo).
Dimensione: dimensione di ogni singolo volume, possiamo anche esprimerla aggiungendo un suffisso per l’unità di misura (es: K per kilobyte, M per megabyte, G per gygabyte etc)
Esempi di utilizzo:

split -b 100K miofile.bin filesplit
Prende in input il file “miofile” e restituisce volumi da 100 kilobytes l’uno chiamati filesplitaa, filesplitab e così via.

split -b 700M film.avi film-
Divide il file film.avi in spezzoni da 700 megabytes l’uno chiamati: film-aa, film-ab…

split -l 500 testo.txt tex_
Divide il file di testo testo.txt in file da 500 linee ognuno chiamati: tex_aa, tex_ab….

Cat è il comando per visualizzare e concatenare files.
Per ricostruire il nostro file originario partendo dalle sue parti (chiamate ad esempio filesplit_aa, filesplit_ab e filesplit_ac) possiamo quindi scrivere:

cat filesplit_* > miofile
Concatena tutti i files con un nome che inizia con filesplit_ in un’unico file chiamato miofile.
Lunix Split, Cat e Md5sum

Per controllare che l’operazione di divisione e ricostruzione del file originale sia stata svolta in maniera corretta possiamo utilizzare il comando md5sum:
md5sum fileoriginale
e
md5sum filericomposto
e verificare che i due codici md5 restituiti corrispondano.

Ti piace questo articolo? Consiglialo ad altri utenti:

6 Responses to “Linux: Dividere un file in più parti”


Leave a Reply