2010-09-09 17 views

cevap

20

Aşağıdaki istediğini yapması gerektiğini düşünüyorum:

touch -t 201007010000 dummyfile 
find /path/to/files -type f ! -newer dummyfile -delete 

ilk satır ikinci satır içinde/yolu tüm dosyaları bulur 1 Temmuz 2010 tarihinde son değiştirildiği bir dosya oluşturur/için/dosya Bu, dummyfile'dan daha yeni olmayan bir tarihe sahiptir ve sonra bunları siler.

Doğru çalıştığını iki kez kontrol etmek istiyorsanız, -delete argümanını bırakın ve yalnızca silinecek dosyaları listelemelisiniz. Onları olurdu

find /file/path ! -newermt "Jul 01" 

silmek istediğiniz dosyaları bulmak için, bu yüzden komut silmek için:

+0

'-' 'f önünde bıraktıktan sonra 'şimdi tüm dosyaları listeliyor gibi görünüyor. Eğer '!' sadece yeni dosyaları listeler. –

+0

Ulaşılamıyorum/yanıtı utanmadan http://forums.devshed.com/unix-help-35/finding-a-file-modified-created-before-a-specific-date-468700.html – bramp

+1

, -f değil, sadece f. – bramp

8

Bu çalışması gerekir

find /file/path ! -newermt "Jul 01" -type f -print0 | xargs -0 rm 
+0

Eric, bulmanın hangi sürümünün "newerct" var. Bunu herhangi bir erkek sayfasında listelenemiyorum. – bramp

+0

@bramp: GNU 'find' bu seçeneğe sahiptir. Ancak, Unix/Linux'un bir oluşturma tarihi ile ilgili bir fikri yoktur, bu yüzden '-ewermt' kullanacağım. "C", "yaratma" yerine, inode'un durum değişikliği içindir. –

+0

@Dennis: Açıklamanız için teşekkür ederiz. –

İlgili konular