find
memiliki dukungan yang baik untuk menemukan file yang lebih dimodifikasi kurang dari X hari yang lalu, tetapi bagaimana saya dapat menggunakan find
untuk menemukan semua file yang dimodifikasi setelah tanggal tertentu?
Saya tidak dapat menemukan apa pun di find
halaman manual untuk melakukan ini, hanya untuk membandingkan dengan waktu file lain atau untuk memeriksa perbedaan antara waktu yang dibuat dan sekarang. Apakah membuat file dengan waktu yang diinginkan dan membandingkan dengan itu satu-satunya cara untuk melakukan ini?
Jawaban:
Jika Anda hanya memiliki '-newer file' maka Anda dapat mengambil solusi ini:
sentuhan pria:
Dengan asumsi bahwa sentuhan Anda memiliki opsi ini (milik saya adalah sentuh 5.97).
sumber
Tidak, Anda dapat menggunakan string tanggal / waktu.
Dari
man find
:Contoh:
sumber
Tidak terkait langsung dengan pertanyaan, tetapi mungkin menarik untuk beberapa yang tersandung di sini.
perintah find tidak secara langsung mendukung parameter -older untuk menemukan file yang lebih tua dari tanggal yang disyaratkan, tetapi Anda dapat menggunakan pernyataan negate (menggunakan contoh jawaban yang diterima):
akan mengembalikan file yang lebih lama dari tanggal yang diberikan.
sumber
perintah find ini akan menemukan file yang dimodifikasi dalam 20 hari terakhir.
Anda dapat menambahkan batasan tambahan seperti:
sama seperti sebelumnya, tetapi hanya menemukan file yang diakhiri dengan '.txt'.
sumber
Hanya untuk menambahkan - Anda bahkan dapat menggunakan dua argumen newermt untuk mencari dalam interval waktu:
untuk menemukan semua file dari Maret 2007.
sumber
Anda bisa menggunakan skrip seperti ini
Simpan di $ PATH Anda sebagai "newerthan" dan buat itu bisa dieksekusi.
Kemudian Anda dapat menemukan file yang dimodifikasi setelah tanggal tertentu seperti ini:
atau
atau
Itu harus melakukan apa yang Anda inginkan. Saya tidak berpikir ada cara dibangun untuk mencapai ini sebaliknya.
sumber
bc
untuk bilangan bulat matematika, Bash dapat melakukannya((seconds = when - now))
:, argumen formatdate
harus memiliki nilai tambahdate +%s
dan beberapa sistem mungkin tidak memilikidate -d
seperti ini:
Ini akan memberi Anda file yang lebih tua dari 01-01-2015 di direktori Anda saat ini.
https://muzaffarmahmoodblog.wordpress.com/2019/07/11/linux-command-to-remove-files-older-than-2015-in-a-ddirectory/
sumber
jika kencan Anda diformat sedemikian rupa sehingga tidak masalah untuk perbandingan,
sumber