Mencari berdasarkan stempel waktu file
Sistem file Unix/Linux memiliki tiga jenis stempel waktu pada setiap file. Mereka adalah sebagai berikut:
- Waktu akses (-atime) :Stempel waktu saat file terakhir diakses.
- Waktu modifikasi (-mtime) :Stempel waktu saat file terakhir diubah.
- Ubah waktu (-ctime) :Stempel waktu saat metadata untuk file (seperti izin atau kepemilikan) terakhir diubah.
Cari dan hapus file yang lebih lama dari 7 hari
Mari kita ambil contoh, di mana kita akan menemukan dan menghapus file yang lebih lama dari 7 hari. Kami akan menggunakan opsi “-mtime ” dari perintah find untuk ini.
1. Dapatkan daftar file menggunakan perintah find sebagai berikut:
# find /path_to_directory -mtime +7 -type f -exec ls {}\;
2. Jika nama file dimulai dengan pola tertentu, filter menggunakan pola tersebut sebagai berikut:
# find /path_to_directory -name 'filenamepattern*' -mtime +7 -type f -exec ls {}\;
3. Setelah memeriksa dan mengonfirmasi output, buka skrip penghapusan (Sangat PENTING), jika tidak, akan ada kehilangan data yang tidak dapat dipulihkan.
# find /path_to_directory -name 'filenamepattern*' -mtime +7 -type f -exec rm -fv {}\;
4. Jika ini perlu dilakukan pada server jauh melalui cron job dan mencatat nama file dari file yang dihapus, gunakan perintah berikut
# ssh user@remote_ip "find /path_to_directory -name 'filenamepattern*' -mtime +7 -type f -exec rm -fv {} \; >> /tmp/backup_deletion`date +%Y%m%d`.log 2>&1"
Kesimpulan
-mtime parameter akan mencari file berdasarkan waktu modifikasi; -ctime pencarian berdasarkan waktu perubahan. Waktu penggunaan -atime, -mtime, dan -ctime diukur dalam hari. Perintah find juga mendukung opsi yang diukur dalam hitungan menit. Ini adalah sebagai berikut:
- -amin (waktu akses)
- -mmin (waktu modifikasi)
- -cmin (ubah waktu)
Misalnya, untuk mencetak semua file yang memiliki waktu akses lebih dari tujuh menit, gunakan perintah berikut:
# find . -type f -amin +7 -print
-opsi yang lebih baru
Opsi -newer menentukan file referensi dengan waktu modifikasi yang akan digunakan untuk memilih file yang dimodifikasi lebih baru daripada file referensi.
Temukan semua file yang dimodifikasi lebih baru daripada file file.txt:
# find . -type f -newer file.txt -print