HowTo: cancellare automaticamente episodi più vecchi di una settimana

ATTENZIONE: nel seguente post vengono mostrate tecniche basilari di bash kung-fu. L’autore non si assume alcuna responsabilità su eventuali danni a persone, cose, dati, personaggi di fantasia o altro.

Brevissimo tutorial che spiega come cancellare i file relativi a episodi di serie TV più vecchi di un tot di giorni, ad esempio una settimana. Questo spiegone vale sia su Mac OS X sia su Linux sia su qualunque altra piattaforma UNIX.

Tutti gli script indicati qua sotto vanno sempre e comunque “customizzati” a seconda dei percorsi specifici delle vostre cartelle ecc…

Il trucco sta nell’eseguire un semplice script bash da Terminale. Ammettiamo che la cartella dove tenete le serie TV sia chiamata “SerieTV” e sia dentro alla cartella “Movies” della vostra home, vi basterà usare il comando:

find ~/Movies/SerieTV -type f -mtime +7d -exec rm {} ;

ATTENZIONE!!!! Così com’è lo script cancella TUTTI i file contenuti nella cartella e sottocartelle. Che siano video o altro, fa piazza pulita di tutto irreversibilmente.

Banale, come altrettanto banale è cambiare la stringa relativa al percorso cartella. Con questo script si dice al computer di cercare (find) tutti i file regolari, e non le cartelle (-type f) all’interno del percorso specificato e di tutte le sottocartelle, che abbiano l’ultima data di modifica (-mtime) risalente a 7 giorni fa (+7d o +1w). A quel punto si dice di eseguire (-exec) l’eliminazione (rm) del risultato della ricerca ({}).

Prima di cancellare effettivamente i file potete provare a vedere che cosa cancellerete, ad esempio usando il comando:

find ~/Movies/SerieTV -type f -mtime +7d -print

Potete sperimentare un po’ cambiando il termine temporale (+1d, +2d ecc…) e usando come criterio il la data di ultimo accesso (-atime) invece che quella di ultima modifica. Vi consiglio anche guardare il manuale di find (man find).

Se siete paranoici, come me, prima di cancellare tutto vorrete inserire uno script di backup su disco esterno, ad esempio usando il comando rsync. Questo è il mio:

rsync -auvE --ignore-existing ~/Movies/SerieTV/ /Volumes/NOME_DISCO/SerieTV;

che fa il backup incrementale senza cancellare nulla dal disco di backup. Magari vi va anche di tenere una lista di tutte le serie che avete backuppato, e il possibile comando potrebbe essere:

cd /Volumes/NOME_DISCO/SerieTV;ls -1hR > _Lista.txt

Se volete accorpare il tutto, aprite un editor di testo (non Word, ma TextEdit o GEdit o qualunque altra cosa editi del testo semplice) e incollare uno dopo l’altro i comandi, partendo dal backup. Quindi salvate il file con estensione .sh, ad esempio clean_backup_TV.sh, in una cartella comoda: io l’ho salvata nella cartella Applicazioni utente (quella dentro la home).

Per rendere il file di testo eseguibile come script bash, aprite il Terminale e scrivete:

chmod +x ~/Applications/esempio clean_backup_TV.sh

e date invio. A questo punto potrete eseguire lo script semplicemente doppioclickandoci sopra. E se voleste eseguirlo in automatico?

Su Linux non so come si fa, ma su Mac OS X si può usare Launchd, che è il demone di sistema che si occupa di lanciare gli script periodicamente o se sussistono certe condizioni. Ci sono due modi per farlo, uno facile e a pagamento, l’altro più difficile ma a gratis.

Quello facile:

  1. Comprate Lingon (o Lingon 3) e ricordatevi che prima che esistesse App Store era gratis
  2. Inveite contro App Store e gli sviluppatori che sono passati da software free a software a pagamento solo perché esiste l’App Store
  3. Lanciate Lingon (o Lingon 3) e create un New Job, nel campo “what” scegliete lo script che volete lanciare e poi impostate le condizioni per il lancio, ad esempio ogni giorno a mezzanotte
  4. Clickate su save & load.
  5. FIne

Lingon 3: impostare un nuovo job per Launchd

Quello difficile:

Si tratta di compilare a mano un file xml, formattato a dovere e eseguire due comandi dal Terminale. Non è veramente complicato, e se avete letto il mio vecchio articolo Rinominare e tenere organizzate le serie TV automagicamente, beh, è tutto spiegato lì alla Fase 4.

Perché fare tutto ciò? Ad esempio perché poi puoi fare un symlink alla cartella di Dropbox e, con DropSync o simile, avere le ultime serie TV aggiornate sul tuo smartphone per guardarle quando sei in aereo/treno/bagno ecc…

Ok, questo per oggi è tutto. In realtà avrei voluto scrivere un tutorial molto più succoso su uno script python che promette davvero molto molto bene, ma finora dopo averlo provato ho avuto scarsi risultati… probabilmente lo aggiungerò in fondo ad uno dei prossimi post che vi insegneranno come spalmarvi cotti sul divano con la vostra barba incolta e lasciare che il vostro computer vi rifornisca di un flusso continuo di serie tv. Quest’ultima frase potrebbe contenere un messaggio subliminale e indizi sul prossimo post a tema serie TV. 10 punti a chi indovina cosa come quando perché!

‘nuff said