GNU/Linux >> Linux Esercitazione >  >> Linux

Come trovare ed eliminare file più vecchi di un determinato periodo di tempo in Linux

Ricerca per timestamp file

I filesystem Unix/Linux hanno tre tipi di timestamp su ciascun file. Sono i seguenti:

  1. Ora di accesso (-atime) :il timestamp dell'ultimo accesso al file.
  2. Tempo di modifica (-mtime) :il timestamp dell'ultima modifica del file.
  3. Cambia l'ora (-ctime) :il timestamp dell'ultima modifica dei metadati per un file (come autorizzazioni o proprietà).

Cerca ed elimina file più vecchi di 7 giorni

Facciamo un esempio, in cui troveremo ed elimineremo file più vecchi di 7 giorni. Utilizzeremo l'opzione "-mtime ” del comando find per questo.

1. Ottieni un elenco di file utilizzando il comando trova come segue:

# find /path_to_directory -mtime +7 -type f -exec ls {}\;

2. Se i nomi dei file iniziano con un modello particolare, filtra utilizzando quello come segue:

# find /path_to_directory -name 'filenamepattern*' -mtime +7 -type f -exec ls {}\;

3. Dopo aver verificato e confermato l'output, passare allo script di rimozione (è molto IMPORTANTE), altrimenti si verificherà una perdita di dati irrecuperabile.

# find /path_to_directory -name 'filenamepattern*' -mtime +7 -type f -exec rm -fv {}\;

4. Se è necessario eseguire questa operazione su un server remoto tramite cron job e registrare i nomi dei file eliminati, utilizzare il comando seguente

# ssh user@remote_ip "find /path_to_directory -name 'filenamepattern*' -mtime +7 -type f -exec rm -fv {} \; >> /tmp/backup_deletion`date +%Y%m%d`.log 2>&1"

Conclusione

Il -mtime il parametro cercherà i file in base all'ora di modifica; -ctime ricerche in base al tempo di modifica. -atime, -mtime e -ctime utilizzano il tempo misurato in giorni. Il comando trova supporta anche le opzioni che misurano in minuti. Questi sono i seguenti:

  1. -amin (tempo di accesso)
  2. -mmin (tempo di modifica)
  3. -cmin (cambia ora)

Ad esempio, per stampare tutti i file con un tempo di accesso più vecchio di sette minuti, utilizzare il comando seguente:

# find . -type f -amin +7 -print

-opzione più recente

L'opzione -newer specifica un file di riferimento con un'ora di modifica che verrà utilizzata per selezionare i file modificati più di recente rispetto al file di riferimento.

Trova tutti i file che sono stati modificati più di recente rispetto al file file.txt:

# find . -type f -newer file.txt -print


Linux
  1. Come trovare e ordinare i file in base alla data e all'ora di modifica in Linux

  2. Come estrarre i file .gz e .tar.gz in Linux

  3. Linux – Come trovare la data di creazione del file?

  4. Come trovare ed eliminare directory e file vuoti in Linux

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

Come trovare ed eliminare i collegamenti simbolici interrotti in Linux

Come trovare ed eliminare directory vuote in Linux

Come trovare file basati su timestamp in Linux

Come eliminare file più vecchi di giorni specificati in Linux

Come eliminare i file elencati in un altro file in Linux

Come trovare la data e l'ora di installazione del sistema operativo Linux