Con questo script è possibile cancellare tutti i file nelle sottocartelle di /mnt/server che siano più vecchi di un mese rispetto ad oggi.
#!/bin/bash
IFS='
'
rm /tmp/lista
rm /tmp/mark
for X in /mnt/server ; do
if [[ ! $X =~ /mnt/server/temp ]] ; then
touch -t $(date +%y%m%d --date='-1 month')0001 /tmp/mark
find /mnt/server/ ! -newer /tmp/mark -type f > /tmp/lista
for Y in $(cat /tmp/lista) ; do
rm $Y
done
fi
done
Con il ciclo for esamina tutte le sottocartelle di /mnt/server su cui agire. Quindi con il controllo if esamina che non siano processate tutte le cartelle che cominciano con “temp”, in quanto non devono interessare il nostro processo. Con touch crea un file di demarcazione temporale, e con find crea una lista di raffronto in base al file creato con touch. Infine rm rimuove i file della lista.