GNU/Linux >> Belajar Linux >  >> Linux

Menemukan file yang lebih lama dari x hari pada sistem dengan busybox yang dipreteli

-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?


Linux
  1. Bagaimana cara Menghapus semua file yang lebih lama dari X jumlah Hari di Linux?

  2. Mengapa Find -mtime +1 Hanya Mengembalikan File Lebih Lama dari 2 Hari?

  3. Menemukan file yang dapat dibaca manusia di unix

  1. hitung total ruang disk yang digunakan oleh file yang lebih lama dari 180 hari menggunakan find

  2. temukan dan hapus file atau folder yang lebih lama dari x hari

  3. Bagaimana Anda menghapus file yang lebih lama dari tanggal tertentu di Linux?

  1. Temukan semua file yang lebih lama dari satu menit

  2. temukan file dengan set ACL

  3. Temukan direktori dengan semua file di dalamnya lebih tua dari X?