Belirli tarihler arasında değiştirilen dosyalar nasıl kaldırılır?


12

Konudaki gibi: Belirli bir tarih aralığında değiştirilmiş bir dizindeki dosyaları kaldırmak istiyorum. Bunu nasıl yapabilirim ?

Yanıtlar:


18

Komut GNU findgitmenin yoludur. Örneğin, geçerli dizindeki 1 ile 5 ağustos arasındaki tüm dosyaları silmek için aşağıdaki komutu kullanabilirsiniz

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

-deleteİlgilenilen dosyaların listesini görmek için komutu eylem olmadan yürütmek daha iyidir (iyi bir yedek -lsls benzeri bir liste oluşturabilir).

-maxdepth 1Belirtimin kaldırılması tüm alt dizinleri de geçecektir.

Ayrıca saatleri de belirtebilirsiniz, örneğin

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

Tarih ve saat arasındaki boşlukları koruyan tek tırnak işaretlerini kaldırmamaya dikkat edin.

Karakter !bir olumsuzlamadır, okunmalıdır: bu tarihten daha yeni ancak bu diğer tarihten daha yeni değil


Cevap için teşekkürler. Saat aralığını seçmek için de bir şey kullanabilir miyim? Ve '!' Nedir? için kullanılır ?
Patryk

Bu !bir değil. Bu örnekte: 2011-08-06'dan daha yeni değil.
con-f-use

@lordmonkey: cevabımdaki düzenlememe bakın
enzotib

3
+1. Bilmiyordum - yüklemi sil. Belki gerekli değildir, ama ekleyeceğim -type f.
Michał Šrajer

@ Michał Šrajer: için iyi ipuçları -type f, bunu unutuyorum. -deleteBir GNU uzantıları, sanırım.
enzotib
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.