Bagaimana cara menghapus file di linux yang lebih lama dari 1 tahun? [duplikat]

9

Kemungkinan Gandakan:
Bagaimana cara saya menghapus file yang lebih besar dari tanggal tertentu di linux

Bagaimana cara menghapus semua file dalam direktori saat ini dan sub direktori yang lebih tua dari satu tahun?

Komunitas
sumber
1
Lakukan man find. Ledakan.
1
Catatan untuk penutup: bahwa pertanyaan lain sebenarnya membingungkan berbeda, jawabannya tidak sepenuhnya mudah untuk ditransformasikan.
Gilles 'SO- stop being evil'

Jawaban:

15
find /the/dir/to/start/in -type f -mtime +365 -ls -exec rm -f -- {} \;
bot403
sumber
2
find /path/to/files -type f -mtime +365 -deleteakan lebih mudah.
Chris S
-hapus tidak ada di aix saya, jadi saya tidak terbiasa menggunakannya. Saya senang diimplementasikan di binari find lain.
bot403
find … -exec rm -f {} +akan sedikit lebih cepat (dan ini portabel kecuali untuk sistem kuno).
Gilles 'SO- stop being evil'
1
Juga, itu ide yang baik untuk digunakan --jika nama file pertama dimulai dengan -(meskipun Anda dapat menjamin itu tidak akan terjadi jika direktori yang diteruskan findtidak dimulai dengan a -).
Gilles 'SO- stop being evil'
Ini sangat berbahaya karena Anda tidak melihat apa yang akan Anda hapus dan mengapa Anda dipaksa menghapus -f? Beberapa file dilindungi karena suatu alasan. Jauh lebih aman untuk menyimpan hasil pencarian ke dalam file, kemudian memeriksanya dan menjalankan rm pada isi file.
Petr
2

Jika Anda menghapus banyak file, ini biasanya jauh lebih cepat daripada "-exec" atau menyalurkan ke "xargs":

find . -type f -mtime +365 | perl -lne unlink
Pontus
sumber