2013-04-18 16 views
167

Np. Serwer MySQL działa na moim komputerze z Ubuntu. Niektóre dane zostały zmienione w ciągu ostatnich 24 godzin.Skrypty: znajdź pliki 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?

Proszę podać nazwy plików, rozmiary plików i zmodyfikowany czas.

+1

Możesz użyć http://stackoverflow.com/questions/4561895/how-to-recursively-find-the-latest-modified-file-in--directory – vaugham

Odpowiedz

321

Aby znaleźć wszystkie pliki zmodyfikowane w ciągu ostatnich 24 godzin (ostatni pełny dzień), w szczególności określonym katalogu i jego podkatalogów:

find /directory_path -mtime -1 -ls 

powinny być do gustu

- przed 1 jest ważne - oznacza wszystko zmienione dzień lub mniej temu. A + przed zamiast tego oznaczałoby wszystko zmienione co najmniej jeden dzień temu, podczas gdy mając nic przed 1 oznaczałoby to, że został zmieniony, co zostało ustalone jeden dzień temu, nie więcej, nie mniej.

+8

nice! co powiesz na ostatnie 2 godziny? – JackWM

+73

użyj "-mmin -120" zamiast mtime – Xavjer

+0

dziękuję za odpowiedź, ale chcę uzyskać wartość zwracaną, jeśli to polecenie ma zmodyfikowany plik, a jeśli nie? – Spartan

29

można zrobić z

find . -mtime 0 

Od man find:

[W] czas, ponieważ każdy plik był ostatnio modyfikowany dzieli się przez 24 godziny, a każdy reszta jest odrzucana. Oznacza to, że do match -mtime 0 plik będzie musiał mieć modyfikację w przeszłości, która jest mniejsza niż 24 godziny temu.

5

Komenda ta pracował dla mnie

find . -mtime -1 -print 
6

W systemach GNU kompatybilny (czyli Linux):

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

Będzie to lista plików i katalogów, które zostały zmodyfikowane w ciągu ostatnich 24 godzin (-mtime 0). Zostanie wyświetlona lista z ostatnim czasem modyfikacji w formacie, który będzie zarówno możliwy do sortowania, jak i czytelny dla człowieka (%T+), a następnie rozmiar pliku (%s), a następnie pełna nazwa pliku (%p), każda oddzielona tabulatorami (\t).

2>/dev/null wyrzuca wszystkie wyjścia stderr, dzięki czemu komunikaty o błędach nie zabrudzą wody; sort -r sortuje wyniki według najnowszych modyfikacji; i | more zawiera listę jednej strony wyników na raz.

+0

Można również użyć '| less' zamiast '| więcej ", przypuszczam. –

1

Dla innych, którzy lądują tu w przyszłości (w tym ja), dodać opcję -name znaleźć konkretne typy plików, na przykład: find /var -name "*.php" -mtime -1 -ls

+1

Musisz chronić * za pomocą podwójnych cudzysłowów, w przeciwnym razie zostanie rozwinięte w linii poleceń: 'find/nazwa-var" * .php "-mtime -1 -ls' – jytou

3

inny sposób:

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

czyli

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

czyli

find /<directory> -newermt "yesterday" -ls 
Powiązane problemy