Tempo di Lettura: 2 minuti
Il bello di avere un sistema Mac è che si ha sempre a disposizione una potente shell unix; in tal modo, tutti i tips validi per il mondo Linux, sono funzionanti anche per Mac OS X. Tra questi oggi vi voglio segnalare un trucchetto che ha dalla sua una estrema semplicità e al contempo risulta essere davvero utile.
Spesso capita di scaricare dei file splittati, ovvero dei file di grandi dimensioni che, per velocizzarne il download o a causa dei limiti di upload dei server di hosting, sono stati suddivisi in più parti di dimensioni massime prestabilite, creando file con estensioni tipo .001, .002, .003, etc.
Join per un utente Windows
A questo punto, un qualsiasi utente Windows, dopo aver scaricato tutti questi file, per riunirli ha due alternative: o si scarica HJSplit, un applicativo che permette, tramite una intuitiva interfaccia di unire tutti i file in uno unico, oppure apre il Command Prompt e digita la seguente riga di comando:
copy /b file.001+file.002+file.003 joinfile.ext
Grazie al argomento “/b” del comando “copy” è possibile copiare file binary, mentre concatenando con il comando + i file è possibile fare il join dei file indicati. Se fossimo stati sicuri che si trattava di una semplice file di testo in ASCII, allora avremmo potuto omettere l’argomento “/b”.
E’ evidente, però, che eseguire una join di questo tipo prevede di dover scrivere a mano tutti i nomi dei file splittati (e a volte possono anche essere decine) ed è per questo che un utente Windows preferisce usare HJSplit per eseguire una Join più rapidamente.
Join per un utente Linux e Mac OS X
Un utente Linux e Mac, invece, ha una scelta in più. Se è vero che esiste anche la controparte per Linux di HJSplit e un analogo software per Mac OS X (Split&Concat) è possibile eseguire il join dei file da riga di comando in maniera molto veloce e senza essere costretti a specificare, ad uno ad uno, i file splittati.
E’ sufficiente, infatti, usare il comando cat in questo modo:
cat file.00* > joinfile.ext
In realtà, come ho scoperto, il comando split dei sistemi Unix-like, quando separa un file in più parti, genera i nomi dei file (con estensioni tipo con .001, .002, .003) in modo che possano essere automaticamente determinati e ordinati alfabeticamente, in modo da poter ricostruire i dati originari tramite il comando “cat” che, in questo modo, si trova facilmente tutti i file in sequenza e senza necessità di specificarglieli.
Analogamente al comando “copy” del dos, si potrebbero anche scrivere tutti i file uno ad uno, ma sfruttando appunto la sinergia dei comandi split/cat dell’ambiente Unix, si può benissimo usare il wildcard * in modo da non dover ripetere prima del segno “>” tutti i nomi dei files splittati.