Eliminare file più vecchi di N giorni sotto Linux



A volte capita di voler eliminare da una cartella specifica i file più vecchi di N giorni. A me, per esempio, capita spesso col desktop, dove di solito metto le cose che scarico da internet oppure cerco dei documenti temporanei. Un uso ancora più sensato potrebbe essere nelle cartelle temporanee, anziché cancellare tutta la cartella si potrebbe pensare di rimuovere solo i file più vecchi secondo un certo criterio.

Come molte operazioni, anche questa con linux risulta abbastanza banale. Vediamo la riga di comando:

find /percorso/ai/file* -mtime +5 -exec rm {} ;

Il comando usato è il find, ecco la spiegazione del funzionamento.

  • Il primo argomento è il percorso nel quale ci sono i file. Può anche contenere wilcard, come nell’esempio sopra. Raccomando di usare sempre il percorso completo, per evitare problemi e di provarlo prima senza il comando “rm” per essere sicuri del funzionamento corretto
  • Il secondo parametro, -mtime, è usato per specificare il numero di giorni di “età” di un file. Scrivendo “+5” troveremo tutti i file più vecchi di 5 gg.
  • Il terzo argomento, -exec, ci permette di eseguire un comando su ogni file trovato. Ciò che segue è:
  • rm: il comando
  • {}: il nome del file
  • ; il carattere di terminazione del comando (preceduto da escape)

Fatto. Questo comando dovrebbe funzionare su Ubuntu, Suse, Redhat o qualunque altra distro.

Annunci sponsorizzati:
Condividi su Facebook Condividi su Twitter!
  • Alessandro

    Su debian 4 da errore:

    find: missing argument to `-exec’

  • Grazie, comodo!

Pinterest