Ho creato questo piccolo script solo per avere una alternativa non grafica a fileroller. Praticamente passando uno o più file alla riga di comando viene avviato il processo di archiviazione che una volta ultimato informa l'utente sulla misura dell' archivio e sulla possibilità di poterlo dividere in più parti. Dato l'impiego del comando di sistema split sto cercando una alternativa che mi permetta di riottenere un archivio completo anche dalle utility di windows (su Linux si riottiene tramite il comando cat partedelfile*> nomearchivio.zip
). Lo script può essere ancora migliorato e, naturalmente se aqualcuno venisse in mente qualcosa per farlo è il benvenuto.
#! /bin/bash message0="ERRORE!"message1=" .....[Ok]"message2=" .....[Fallito]" # Controlla che la riga di comando passi# almeno un argomento.if[[-z"$@"]]thenecho""echo"$message0"echo"Devi inserire almeno un argomento."exit1elsecontinuefi for i in"$@"doecho""echo-n"Archiviazione del file $i"zip-q-r$i.zip $i# Controlla se l'archivio è stato creato con# successo.if[[-e$i.zip ]]thenecho"$message1"elseecho-n""echo"$message2"exit1fiecho""# Recupera la dimensione dell'archivio creato.zipsize=`du-m$i.zip |awk'{print $1}'`# Il costrutto case permette di scegliere se dividere# i file in più parti (inizializzando la misura in MB),# oppure di uscire direttamente dallo script.echo"L'archivio $i.zip misura "$zipsize"MB, vuoi dividerlo in più parti?"echo"s) per confermare, n) per proseguire, q) per forzare l'uscita."read reply case$replyin s)echo""echo"Inserisci la misura in MB che vuoi dare ai file."read maxsize split-d-b"$maxsize"M $i.zip $irm-rf$i.zip ;; n)echo""echo"Hai scelto di non dividere l'archivio $i.zip in più parti."continue;; q)echo""echo"USCITA IMMEDIATA"break;;esacdone