Hapus File Lebih Lama Dari Satu tahun di Linux

18

Pada saat itu, banyak file masih di sistem saya dan saya tidak membutuhkannya lagi, jadi bagaimana cara menghapus semua file yang setidaknya berumur satu tahun?

Maythux
sumber

Jawaban:

34

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
Maythux
sumber
7
Anda harus selalu mengutip {}dalam -exec(sehingga terbaca -exec rm "{}" \;). Ini memastikan bahwa ruang ditangani dengan benar ... Dan Anda bisa menggunakan -deletefungsi saja -exec.
Oli
1
@Oli Huh ??? (Apa yang Anda katakan tidak mungkin benar, mengingat bahwa shell berubah "{}"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?)
Eliah Kagan
1
@ EliahKagan Ya, ternyata findmenangani melarikan diri untuk dirinya sendiri tetapi itu bukan kebiasaan buruk untuk berada di saat skrip. Tidak sakit.
Oli
2
@ Oli Tapi itu tidak membantu, bahkan secara prinsip. Jika 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.)
Eliah Kagan