Trova i file che sono stati modificati nelle ultime 24 ore


265

Ad esempio, un server MySQL è in esecuzione sul mio computer Ubuntu. Alcuni dati sono stati modificati nelle ultime 24 ore.

Quali script (Linux) possono trovare i file che sono stati modificati nelle ultime 24 ore?

Elenca i nomi dei file, le dimensioni dei file e l'ora modificata.


Risposte:


479

Per trovare tutti i file modificati nelle ultime 24 ore (ultimo giorno intero) in una directory specifica specifica e nelle sue sottodirectory:

find /directory_path -mtime -1 -ls

Dovrebbe essere di tuo gradimento

Il -prima 1è importante: significa che qualcosa è cambiato un giorno o meno fa. Un +prima 1significherebbe invece che qualcosa è cambiato almeno un giorno fa, mentre non avere nulla prima che ciò 1avrebbe significato che è stato cambiato esattamente il giorno fa, né più né meno.


17
simpatico! che ne dici delle ultime 2 ore?
JackWM,

114
usa "-mmin -120" invece di mtime
Xavjer,

1
perché -prima del valore numerico?
EsseTi,

6
L'argomento di -mtime viene interpretato come il numero di giorni interi nell'età del file. -mtime + n significa strettamente maggiore di, -mtime -n significa strettamente inferiore a.
Xavjer,

3
Per il lettore: non dimenticare di rimuovere il -lsquando si utilizza in uno script
redolent

41

Puoi farlo con

find . -mtime 0

Da man find:

[Il tempo] dall'ultima modifica di ciascun file è diviso per 24 ore e ogni resto è scartato. Ciò significa che per abbinare -mtime 0, un file dovrà avere una modifica in passato che è meno di 24 ore fa.


25

Un altro modo più umano:

find /<directory> -newermt "-24 hours" -ls

o:

find /<directory> -newermt "1 day ago" -ls

o:

find /<directory> -newermt "yesterday" -ls

11

Su sistemi compatibili GNU (es. Linux):

find . -mtime 0 -printf '%T+\t%s\t%p\n' 2>/dev/null | sort -r | more

Verranno elencati i file e le directory che sono stati modificati nelle ultime 24 ore ( -mtime 0). Li elencherà con l'ultima volta modificata in un formato che sia ordinabile e leggibile dall'uomo ( %T+), seguito dalla dimensione del file ( %s), seguito dal nome file completo ( %p), ciascuno separato da tabs ( \t).

2>/dev/nullbutta via qualsiasi output stderr, in modo che i messaggi di errore non confondano le acque; sort -rordina i risultati per primi modificati per primi; ed | moreelenca una pagina di risultati alla volta.


2
Potresti anche usare | lessinvece di | more, suppongo.
Stephen G Tuggy,

7

Per gli altri che arriveranno qui in futuro (incluso me stesso), aggiungi un'opzione -name per trovare tipi di file specifici, ad esempio: find /var -name "*.php" -mtime -1 -ls


5

Questo comando ha funzionato per me

find . -mtime -1 -print
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.