Bagaimana saya bisa menghapus semua file dalam folder yang belum diakses dalam jumlah waktu tertentu?


14

Saya ingin menjalankan tugas cron malam yang menghapus semua file dalam folder yang belum diakses dalam seminggu atau lebih. Apa cara paling efisien untuk melakukan ini di bash?


2
finddapat memfilter berdasarkan atime. "Kebenaran" dari atime tergantung pada konfigurasi (lihat noatime), paling tidak.

Jawaban:


20

Anda menginginkan findalat itu .

find folder -depth -type f -atime +7 -delete

(Ini akan menghapus semua file ( hanya yang biasa , tidak ada pipa, perangkat khusus, direktori, link simbolik) di folder tertentu dan semua subdirektori (rekursif) di mana yang terakhir waktu akses adalah lebih lama dari 7 hari yang lalu.)


6
Anda mungkin ingin menambahkan -type fdi sana untuk memastikan hanya menghapus file, bukan seluruh direktori.
Shadur

3

Anda mungkin ingin memeriksa tmpwatchyang dapat dimasukkan ke dalam pekerjaan cron. Tidak perlu menggulung sendiri find. Di RHEL ada di tmpwatchRPM.


Ini jelas merupakan solusi yang lebih elegan, tetapi saya lebih suka portabilitas find.
bloudermilk
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.