[Primipassi] Cancellare i file per data
Daniele Masini
d.masini@tiscali.it
Mar 29 Mar 2005 09:43:42 CEST
Alcuni partecipanti al corso su GNU/Linux che il FLUG sta tenendo in
questo periodo a Firenze, durante la lezione sulla shell, hanno
richiesto il comando per cancellare da una directory i file con una
determinata data.
Di seguito riporto i comandi che possono funzionare allo scopo.
Ad esempio, il seguente comando consente di ottenere l'elenco dei nomi
dei file la cui ultima modifica è stata effettuata il giorno 29 Marzo 2005
ls -l --time-style=+%Y-%m-%d | grep 2005-03-29 | cut -d ' ' -f 8
Quindi l'espressione seguente consente di cancellarli
rm `ls -l --time-style=+%Y-%m-%d | grep 2005-03-29 | cut -d ' ' -f 8`
Il comando successivo consente di ottenere l'elenco dei nomi dei file la
cui ultima modifica è stata effettuata il giorno corrente
ls -l --time-style=+%Y-%m-%d | grep `date +%Y-%m-%d` | cut -d ' ' -f 8
Quindi l'espressione seguente consente di cancellarli
rm `ls -l --time-style=+%Y-%m-%d | grep \`date +%Y-%m-%d\` | cut -d ' '
-f 8`
Attenzione agli apici: ' è l'apice normale (apostrofo), mentre ` è
l'apice inverso, che su GNU/Linux è possibile ottenerlo con la
combinazione di tasti Alt + '
La speigazione di massima è che il comando ls -l serve per ottenere
l'elenco dei file della directory corrente nel formato lungo, in maniera
che vengano visualizzate anche le date e l'opzione --time-style indica
di utilizzare un formato specifico per la visualizzazione della data
(YYYY-MM-DD). Il comando grep serve per estrarre dall'elenco soltanto le
righe che contengono una data specifica e cut serve per prelevare
soltanto i nomi dei file dall'elenco precedentemente filtrato.
Per i dettagli realativi ai comandi (ls, grep, cut, date) si rimanda
alle relative man page.
Saluti,
Daniele
Maggiori informazioni sulla lista
primipassi