Bagaimana cara menghapus file yang dimodifikasi antara tanggal tertentu?


12

Seperti dalam topik: Saya ingin menghapus file dalam direktori yang telah dimodifikasi dalam rentang tanggal tertentu. Bagaimana saya bisa melakukan ini?

Jawaban:


18

Perintah GNU findadalah cara untuk pergi. Misalnya, untuk menghapus semua file dalam direktori saat ini antara 1 dan 5 Agustus, Anda dapat menggunakan perintah berikut

find . -maxdepth 1 -type f -newermt 2011-08-01 ! -newermt 2011-08-06 -delete

Lebih baik untuk mengeksekusi perintah tanpa -deletetindakan, pertama, untuk melihat daftar file yang tertarik (pengganti yang baik bisa -lsyang menghasilkan daftar ls-like).

Menghapus -maxdepth 1spesifikasi akan melintasi semua subdirektori juga.

Anda juga dapat menentukan jam, misalnya

find . -maxdepth 1 -type f -newermt '2011-08-01 10:01:59' \
                         ! -newermt '2011-08-06 23:01:00' -delete

Diperingatkan untuk tidak menghapus tanda kutip tunggal, yang melindungi spasi antara tanggal dan waktu.

Karakter !adalah negasi, harus dibaca: lebih baru dari tanggal ini tetapi tidak lebih baru dari tanggal lainnya.


Terima kasih atas balasannya Bisakah saya juga menggunakan sesuatu untuk memilih rentang jam? Dan apa '!' Digunakan untuk ?
Patryk

Itu !bukan. Dalam contoh ini: Tidak lebih baru dari 2011-08-06.
con-f-use

@lordmonkey: lihat pengeditan saya di jawabannya
enzotib

3
+1. Saya tidak tahu predikat -hapus. Mungkin itu tidak diperlukan, tetapi saya akan menambahkan -type f.
Michał Šrajer

@ Michał Šrajer: tips bagus untuk -type f, saya lupa itu. Itu -deleteadalah ekstensi GNU, saya pikir.
enzotib
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.