Temukan file yang telah diubah dalam 24 jam terakhir


265

Misalnya, server MySQL sedang berjalan di mesin Ubuntu saya. Beberapa data telah diubah selama 24 jam terakhir.

Apa skrip (Linux) yang dapat menemukan file yang telah diubah selama 24 jam terakhir?

Harap sebutkan nama file, ukuran file, dan waktu modifikasi.


Jawaban:


479

Untuk menemukan semua file yang dimodifikasi dalam 24 jam terakhir (hari penuh terakhir) di direktori spesifik tertentu dan sub-direktori:

find /directory_path -mtime -1 -ls

Seharusnya sesuai dengan keinginan Anda

Yang -sebelumnya 1itu penting - itu berarti apa pun berubah satu hari atau kurang dari yang lalu. Sebuah +sebelum 1akan bukan berarti ada yang berubah setidaknya satu hari yang lalu, sementara memiliki apa-apa sebelum 1akan berarti itu berubah dituntut satu hari yang lalu, tidak lebih, tidak kurang.


17
bagus! bagaimana kalau 2 jam terakhir?
JackWM

114
gunakan "-mmin -120" sebagai ganti mtime
Xavjer

1
mengapa -sebelum nilai numerik?
EsseTi

6
Argumen untuk -mtime diartikan sebagai jumlah hari penuh dalam usia file. -mtime + n berarti lebih besar dari, -mtime -n berarti benar-benar kurang dari.
Xavjer

3
Untuk pembaca: jangan lupa untuk menghapus -lssaat menggunakan dalam skrip
redolent

41

Anda bisa melakukannya dengan

find . -mtime 0

Dari man find:

[Waktu] sejak setiap file terakhir dimodifikasi dibagi dengan 24 jam dan sisanya dibuang. Itu berarti bahwa untuk mencocokkan -mtime 0, file harus memiliki modifikasi di masa lalu yang kurang dari 24 jam yang lalu.


25

Cara lain yang lebih manusiawi:

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

atau:

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

atau:

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

11

Pada sistem yang kompatibel dengan GNU (yaitu Linux):

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

Ini akan mencantumkan file dan direktori yang telah dimodifikasi dalam 24 jam terakhir ( -mtime 0). Ini akan mencantumkan mereka dengan waktu modifikasi terakhir dalam format yang dapat diurutkan dan dibaca manusia ( %T+), diikuti oleh ukuran file ( %s), diikuti oleh nama file lengkap ( %p), masing-masing dipisahkan oleh tab ( \t).

2>/dev/nullmembuang output stderr, sehingga pesan kesalahan tidak mengeruhkan air; sort -rmengurutkan hasil dengan paling baru dimodifikasi terlebih dahulu; dan | moremencantumkan satu halaman hasil sekaligus.


2
Anda juga bisa menggunakan | lessbukan | more, saya kira.
Stephen G Tuggy

7

Untuk orang lain yang mendarat di sini di masa mendatang (termasuk saya), tambahkan opsi -nama untuk menemukan jenis file tertentu, misalnya: find /var -name "*.php" -mtime -1 -ls


Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.