Znajdź pliki, które zostały zmienione w ciągu ostatnich 24 godzin

264

Na przykład serwer MySQL działa na moim komputerze Ubuntu. Niektóre dane zostały zmienione w ciągu ostatnich 24 godzin.

Jakie skrypty (Linux) mogą znaleźć pliki, które zostały zmienione w ciągu ostatnich 24 godzin?

Podaj nazwy plików, rozmiary plików i zmodyfikowany czas.

JackWM
źródło
1
Możesz użyć stackoverflow.com/questions/4561895/…
vaugham 18.04.2013

Odpowiedzi:

478

Aby znaleźć wszystkie pliki zmodyfikowane w ciągu ostatnich 24 godzin (ostatniego pełnego dnia) w określonym katalogu i jego podkatalogach:

find /directory_path -mtime -1 -ls

Powinno ci się podobać

-Przed 1ważne - oznacza to, że coś się zmieniło jeden dzień lub mniej temu. +Zanim 1będzie zamiast oznaczać cokolwiek zmienił co najmniej jeden dzień temu, mając nic, zanim 1będzie oznaczało, że został zmieniony wymaganych Jeden dzień temu, nie więcej, nie mniej.

Xavjer
źródło
17
miły! co powiesz na ostatnie 2 godziny?
JackWM 18.04.13
114
użyj „-mmin -120” zamiast mtime
Xavjer 18.04.13
1
dlaczego -przed wartością liczbową?
EsseTi
6
Argument -mtime jest interpretowany jako liczba pełnych dni w wieku pliku. -mtime + n oznacza ściśle większą niż, -mtime -n oznacza ściśle mniejszą niż.
Xavjer,
3
Do czytelnika: nie zapomnij usunąć -lsprzy użyciu w skrypcie
ponury
41

Możesz to zrobić za pomocą

find . -mtime 0

Od man find:

[Czas] od ostatniej modyfikacji każdego pliku jest dzielony przez 24 godziny, a pozostała część jest odrzucana. Oznacza to, że aby dopasować -mtime 0, plik będzie musiał mieć modyfikację w przeszłości, która jest krótsza niż 24 godziny temu.

Michael
źródło
25

Kolejny, bardziej humanitarny sposób:

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

lub:

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

lub:

find /<directory> -newermt "yesterday" -ls
Maxim Egorushkin
źródło
11

W systemach kompatybilnych z GNU (tj. Linux):

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

Spowoduje to wyświetlenie plików i katalogów, które zostały zmodyfikowane w ciągu ostatnich 24 godzin ( -mtime 0). Spowoduje to wyświetlenie ich z ostatnią modyfikacją w formacie, który jest zarówno sortowalny, jak i czytelny dla człowieka ( %T+), następnie rozmiar pliku ( %s), a następnie pełna nazwa pliku ( %p), każdy oddzielony tabs ( \t).

2>/dev/nullwyrzuca wszelkie dane wyjściowe stderr, aby komunikaty o błędach nie błotniały wód; sort -rnajpierw sortuje wyniki według ostatnio zmodyfikowanych; i | morewyświetla jedną stronę wyników na raz.

Stephen G. Tuggy
źródło
2
Można również użyć | lesszamiast | more, jak sądzę.
Stephen G Tuggy
7

W przypadku innych osób, które wylądują tutaj w przyszłości (w tym mnie), dodaj opcję -name, aby znaleźć określone typy plików, na przykład: find /var -name "*.php" -mtime -1 -ls

wydać ponownie
źródło
5

To polecenie działało dla mnie

find . -mtime -1 -print
BhandariS
źródło