GNU/Linux >> Linux Esercitazione >  >> Linux

Trovare file più vecchi di x giorni su un sistema con un busybox ridotto

-mtime è un predicato standard di find (contrariamente a -delete ) ma sembra che tu abbia una versione ridotta di busybox , dove FEATURE_FIND_MTIME la funzione è stata disabilitata al momento della compilazione.

Se riesci a ricostruire busybox con esso abilitato, dovresti essere in grado di fare:

find . -mtime +6 -type f -exec rm -f {} +

O se FEATURE_FIND_DELETE è abilitato anche:

find . -mtime +6 -type f -delete

In caso contrario, altre opzioni potrebbero essere l'utilizzo di find -newer (assumendo FEATURE_FIND_NEWER è abilitato) su un file che è impostato per avere un tempo di modifica vecchio di una settimana.

touch -d "@$(($(date +%s) - 7 * 86400))" ../ref &&
  find . ! -type f -newer ../ref -exec rm -f {} +

O se -newer non è disponibile ma sh è [ supporta -nt :

touch -d "@$(($(date +%s) - 7 * 86400))" ../ref &&
  find . ! -type f -exec sh -c '
    for f do
      [ "$f" -nt ../ref ] || printf "%s\0" "$f"
    done' sh {} + |
    xargs -0 rm -f

Da man find :

-atime n

Ultimo accesso al file n*24 ore fa. Quando find calcola quanti periodi di 24 ore fa è stato effettuato l'ultimo accesso al file, qualsiasi parte frazionaria viene ignorata, quindi per far corrispondere -atime +1, è necessario che sia stato effettuato l'accesso a un file almeno due giorni fa.

-ctempo n

Lo stato del file è stato modificato l'ultima volta n*24 ore fa. Vedi i commenti per -atime per capire come l'arrotondamento influisce sull'interpretazione dei tempi di modifica dello stato del file.

A seconda dei casi d'uso dei file che desideri eliminare, queste sono le tue uniche altre opzioni per find . Perché è mtime non disponibile? Che filesystem stai usando? Hai esplorato altre opzioni?


Linux
  1. calcola lo spazio su disco totale utilizzato dai file più vecchi di 180 giorni usando find

  2. trova ed elimina file o cartelle più vecchi di x giorni

  3. Come si eliminano i file più vecchi di una data specifica in Linux?

  4. Trova tutti i file più vecchi di un minuto

  5. Eliminazione corretta di file più vecchi di 30 giorni

Trova i file persi con Scalpel

Come eliminare file più vecchi di giorni specificati in Linux

trova i file con gli ACL impostati

Trova directory con tutti i file all'interno più vecchi di X?

Eliminazione di file più vecchi di 30 giorni in base al nome del file come data

Cron job per eliminare tutti i file più vecchi di 7 giorni con estensione in una cartella specifica - non funzionante