-mtime
adalah predikat standar dari find
(berlawanan dengan -delete
) tetapi sepertinya Anda memiliki versi busybox
yang dipreteli , di mana FEATURE_FIND_MTIME
fitur telah dinonaktifkan pada waktu pembuatan.
Jika Anda dapat membangun kembali busybox dengan mengaktifkannya, Anda seharusnya dapat melakukan:
find . -mtime +6 -type f -exec rm -f {} +
Atau jika FEATURE_FIND_DELETE
juga diaktifkan:
find . -mtime +6 -type f -delete
Jika tidak, pilihan lain bisa menggunakan find -newer
(dengan asumsi FEATURE_FIND_NEWER
diaktifkan) pada file yang diatur untuk memiliki waktu modifikasi satu minggu.
touch -d "@$(($(date +%s) - 7 * 86400))" ../ref &&
find . ! -type f -newer ../ref -exec rm -f {} +
Atau jika -newer
tidak tersedia kecuali sh
[
mendukung -nt
:
touch -d "@$(($(date +%s) - 7 * 86400))" ../ref &&
find . ! -type f -exec sh -c '
for f do
[ "$f" -nt ../ref ] || printf "%s\0" "$f"
done' sh {} + |
xargs -0 rm -f
Dari man find
:
-atime n
File terakhir diakses n*24 jam yang lalu. Ketika menemukan mengetahui berapa periode 24 jam yang lalu file terakhir diakses, bagian pecahan apa pun diabaikan, jadi untuk mencocokkan -atime +1, file harus telah diakses setidaknya dua hari yang lalu.
-waktu n
Status file terakhir diubah n*24 jam yang lalu. Lihat komentar untuk -atime untuk memahami bagaimana pembulatan memengaruhi interpretasi waktu perubahan status file.
Bergantung pada kasus penggunaan file yang ingin Anda hapus, ini adalah satu-satunya pilihan Anda untuk find
. Mengapa mtime
tidak tersedia? Sistem file apa yang Anda gunakan? Apakah Anda menjelajahi opsi lain?