4 Poche righe di codice, Codice, Linux

Linux: cancellare files più vecchi quando sono tanti

Non so se avete mai provato a cancellare da una cartella linux i files più vecchi di una certa data, sembra facile con uno script del genere

[shell]
find <path_to_folder>/*.jpg -mtime +5 -type f | xargs rm -f
[/shell]

ma se la cartella ha decine di migliaia di files compare l’errore “too many arguments” e non se ne esce

ho dovuto quindi andarci giù pesante scrivere uno script che prenda i files più vecchi da una cartella, verifichi se sono più vecchi di un file di riferimento e li cancelli, ma si fermi dopo un certo numero di files per non intasare il server…

[shell]
fcount=0;
cd <path_to_folder>

touch -d "5 days ago" timestampfile.tmp

for f in `ls -t -r`
do
let "fcount += 1";
#cancello solo se più vecchio di 5 giorni
if [ $f -ot "timestampfile.tmp" ]
then
rm "$f";
fi
#cancello al max 100 files
if [ $fcount -gt 100 ]
then
break
fi
done
[/shell]

Pubblicità

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo di WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione /  Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione /  Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione /  Modifica )

Connessione a %s...