Saya ingin perintah Linux untuk menemukan file berubah di n
detik-detik terakhir .
Apakah ada skrip shell atau alat lain yang bisa saya jalankan dari antarmuka baris perintah atau GUI?
Gunakan perintah find seperti ini:
find . -name "*.txt" -mtime -60s
Untuk menemukan semua *.txt
file yang dimodifikasi dalam 60 detik terakhir.
find: missing argument to `-mtime'
. Namun, saya bisa mendapatkan perilaku yang diinginkan menggunakan -mmin dan argumen desimal. Saya tidak dapat menemukan referensi di halaman manual untuk menemukan untuk digunakans
sebagai argumen.-mtime
. "60-an" juga bukan opsi yang valid di POSIX atau GNU find. Argumen ke-mtime
adalah angka yang menentukan jumlah periode 24 jam yang lalu ketika file diubah.Solusi dengan detik menentukan mtime tidak berfungsi pada sistem linux saya yang menggunakan
find --version
==find (GNU findutils) 4.4.2
.Saya mendapatkan kesalahan berikut:
Namun, saya dapat menggunakan
-mmin
(untuk dimodifikasi dalam m menit terakhir), dan dapat mengambil argumen desimal; misal, file-file find berikut ini dimodifikasi dalam 30 detik terakhir.Jadi misalnya; membuat file yang terakhir diubah 1s, 6s, 11s, ... lalu selama 120 detik terakhir, perintah ini menemukan:
Jadi jika Anda benar-benar membutuhkannya dalam hitungan detik, Anda dapat melakukan sesuatu seperti:
sumber
Mirip dengan apa yang disarankan glenn, jika Anda ingin menemukan semuanya dimodifikasi, katakanlah, pada saat proses penginstal berjalan, mungkin lebih mudah untuk melakukan sesuatu seperti:
Maka Anda tidak perlu melakukan perhitungan waktu; Anda baru saja menemukan hal-hal berubah setelah file pos pemeriksaan.
sumber
Jika Anda memiliki versi find yang tidak mendukung
-mtime -60s
maka solusi yang lebih baik adalahsumber
Cara paling sederhana untuk melakukan ini adalah:
The
-mtime -60s
pilihan, disebutkan dalam jawaban, tidak bekerja pada banyak versifind
, bahkan pada tahun 2016.-newermt
adalah pilihan yang jauh lebih baik untuk kita. Itu dapat menguraikan banyak format tanggal dan waktu yang berbeda.Metode alternatif yang digunakan
mmin
adalah:Opsi ini mungkin tidak berfungsi untuk semua
find
versi.sumber
Jika Anda memantau direktori untuk perubahan pada file, Anda mungkin ingin menggunakan alat-alat yang tidak sah daripada beberapa loop polling yang tak terbatas.
sumber
Jika versi
find
Anda tidak menerima nilai detik atau nyata, seperti milik saya, gunakan-mmin
, tetapi tentukan 0, dan Anda akan mendapatkan semua file dimodifikasi dalam waktu kurang dari satu menit:sumber