Jawaban:
Anda dapat melakukannya dengan perintah ini
find /path/to/files* -mtime +365 -exec rm {} \;
Ada yang menjelaskan
/path/to/files* adalah jalur menuju file.
-mtimedigunakan untuk menentukan jumlah hari file itu. +365 akan menemukan file yang lebih lama dari 365 hari yang merupakan satu tahun
-exec memungkinkan Anda untuk mengirimkan perintah seperti rm.
Edit Terima kasih kepada @Oli note -> Anda dapat melakukannya dengan:
find /path/to/files* -mtime +365 -delete
"{}"menjadi {}sebelum melewatinya ke findtempat pertama; kemudian findmenggantikannya. Mengutip {}disarankan dalam kasus {dan }diri mereka sendiri kadang-kadang dapat diperlakukan secara khusus oleh shell - yang tidak ada hubungannya dengan lakukan dengan ruang kosong. Dan seringkali {}tidak perlu dikutip. Saya tidak bisa memikirkan situasi apa pun, setidaknya ketika memohon penemuan dari shell gaya Bourne, ketika {}, tanpa apa pun di dalam, muncul dengan sendirinya sebagai argumen, akankah harus dikutip. Bisakah Anda?)
findmenangani melarikan diri untuk dirinya sendiri tetapi itu bukan kebiasaan buruk untuk berada di saat skrip. Tidak sakit.
findtidak berhasil melarikan diri, "{}"masih akan memiliki efek yang sama dengan - hanya {}tidak akan bekerja, bukannya keduanya bekerja. Itu {}dan "{}"berperilaku sama bukan - dan tidak bisa - karena fitur khusus dari find. Membingungkan apa yang akan diperluas oleh shell dengan apa yang akan diperluas oleh beberapa program lain adalah kebiasaan buruk. Kita semua kadang-kadang membuat kesalahan itu, tetapi itu masih kesalahan - bukan praktik terbaik. (Orang mungkin masih mengutip {}untuk membantu manusia melihat itu bukan pola ekspansi brace, tapi itu tidak terkait dengan pemisahan kata.)
{}dalam-exec(sehingga terbaca-exec rm "{}" \;). Ini memastikan bahwa ruang ditangani dengan benar ... Dan Anda bisa menggunakan-deletefungsi saja-exec.