Hapus file yang dimodifikasi dalam n jam terakhir dari folder


1

Saya memiliki folder tempat saya terkadang mendapatkan beberapa file besar setelah melakukan beberapa pekerjaan. Saya menghapusnya secara manual. Saya tahu mungkin menghapusnya setelah 1 hari atau lebih, tetapi saya ingin menghapusnya jika sudah dimodifikasi dalam beberapa jam terakhir.

Ada file di folder yang saya TIDAK ingin hapus dan mereka semua memiliki nama file yang mirip namun tidak dapat diprediksi. Saya tidak bisa hanya menggunakan del untuk menghapus yang terbaru, saya harus mengandalkan tanggal modifikasi.

Jawaban:


1
find /some/dir -type f -mmin -<minutes old> -print0 | xargs -0 rm

Ini menemukan semua item di bawah /some/diritu adalah file dan berumur kurang dari <minutes old>beberapa menit, dan menghapusnya. Jangan lupa -jumlah menit sebelum. Juga, jika mmin tidak melakukan trik, coba cmin.


Jika Anda akan menganggap penemuan GNU, ini dapat disederhanakan menjadi find /some/dir -type f -mmin -<minutes old> -delete. Jalankan terlebih dahulu tanpa -deleteopsi untuk menunjukkan apa yang akan dihapus. Dengan POSIX find, find /some/dir -type f -mmin -<minutes old> -exec rm {} +. Tetapi ini membutuhkan utilitas Unix yang tidak dibundel dengan Windows.
Gilles

Doh. Apakah tag 'windows 7' ditambahkan setelah saya menjawab? Saya tidak melihatnya jika tidak. Saya tidak menyadari -hapus. Terus terang saya bukan penggemar argumen -delete dan -exec untuk menemukan; mereka tampak seperti bloatware, dan melarikan diri yang -exec selalu diperlukan menyinggung perasaan halus saya. Namun, pengetahuan tambahan masih bagus; Terima kasih.
Slartibartfast

@slartibartfast: Saya menambahkan tag Windows karena badan pertanyaan menyebutkan Windows. -execadalah POSIX, sedangkan -print0tidak. (Pikiran, -mminjuga bukan POSIX, jadi keberatan saya tidak dibenarkan.) Melarikan diri dari findhasil xargsadalah sulit kecuali Anda memilikinya -print0; Saya suka -exec ... +jauh lebih baik, dan tidak perlu melarikan diri.
Gilles

Pilihan pribadi. Saya hanya berpikir menemukan + xargs lebih unix-y (dalam arti filosofis, bukan POSIX / non-POSIX). Saya juga merekomendasikan grep -Z dan mungkin tar --null. (Perhatikan juga bahwa xargs dapat melakukan paralelisme terkontrol dengan -P)
Slartibartfast

0

IIRC Windows Explorer dapat mengurutkan berdasarkan waktu modifikasi, sehingga Anda bisa melakukan itu dan memilih file yang dimodifikasi dalam rentang waktu yang diinginkan.

slartibartfast telah memberikan jawaban yang menganggap Anda telah menginstal utilitas mirip Unix. Pada Windows, ini bisa berupa utilitas cygwin atau GNU Win32 atau Microsoft Windows SFU atau UWIN . Jika Anda menginstal salah satunya, pastikan untuk menggunakannya finddan bukan perintah Windows asli yang tidak terkait.


Saya pertama-tama ingin ini berfungsi tanpa menginstal perangkat lunak tambahan dan setelah saya yakin saya tidak dapat melakukannya saya akan mencoba beberapa utilitas yang disebutkan. Anda berkata: "IIRC Windows Explorer dapat mengurutkan berdasarkan waktu modifikasi, sehingga Anda bisa melakukan itu dan memilih file yang dimodifikasi dalam rentang waktu yang diinginkan." Bagaimana ini?
TMRW

@ TMRW: Buka direktori di Explorer. Pilih "Detail" di menu "Display" (nama mungkin berbeda di versi Windows Anda). Kemudian klik tajuk kolom tanggal & waktu untuk mengurutkan berdasarkan tanggal & waktu.
Gilles

Ya itu cara manual. Saya mencari cara otomatis via cmd.
TMRW
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.