Sto cercando di eliminare tutti i file e le cartelle in /tmp
dir che sono più vecchie di un giorno.
So eliminare tutti i file e le cartelle che devo fare
rm -rf *
Ma non sono sicuro di come altrimenti trovare tutti i file e le cartelle più vecchi di un giorno per eliminarli e inserire il cron.
Risposta accettata:
Per prima cosa, usa find
per selezionare questi file:
find /tmp -mmin +1440
troverà i file che sono stati modificati più di 1440 minuti fa. (C'è un'opzione per utilizzare i giorni invece dei minuti, ma arrotonda per eccesso e +1 significherà 2 giorni o più, sfortunatamente. Vedi l'avviso di seguito).
Prova questo e se sei soddisfatto che questo trova i file giusti, eliminali in una volta sola:
find /tmp -mmin +1440 -delete
Vedi man find
per altre possibilità (ora dell'ultima modifica dello stato, ora di accesso).
Avviso sull'utilizzo di -mtime +1
:
Nell'uomo trova
Dice:
-mtime n
I dati del file sono stati modificati l'ultima volta n*24 ore fa.
Ma dice anche:
Vedi i commenti per -atime
per capire come l'arrotondamento influisca sull'
interpretazione dei tempi di modifica dei file.
I commenti per -atime
dì:
Quando find calcola quanti periodi di 24 ore fa è stato l'ultimo accesso al file
, qualsiasi parte frazionaria viene ignorata, quindi per corrispondere a -atime +1 , è necessario che sia stato eseguito l'accesso a un file
almeno due giorni fa.
In altre parole, -mtime
può contare solo in unità di 24 ore o un giorno ciascuna fino a -mtime +1
va, questo significa esattamente più di un giorno per almeno un giorno (cioè due giorni+)
-mmin
d'altra parte può contare in minuti. Quindi, se l'accuratezza rigorosa è vitale, allora -mmin +1440
( 1440 minuti =1 giorno ) potrebbe essere utilizzato al posto di -mtime +1