Yanıtlar:
Bunu bu komutla yapabilirsiniz
find /path/to/files* -mtime +365 -exec rm {} \;
Bazıları açıklar
/path/to/files* dosyalara giden yoldur.
-mtimedosyanın kaç gün eski olduğunu belirtmek için kullanılır. +365 365 günden eski dosyaları bulacaktır.
-exec rm gibi bir komut vermenizi sağlar.
@Oli notu sayesinde düzenleyin -> bunu şu şekilde yapabilirsiniz:
find /path/to/files* -mtime +365 -delete
"{}"içine {}geçirmeden önce findilk etapta, daha sonra findyerine geçen bunun için alıntı. {}Durumda önerilir {ve }kendilerini bazen kabuk tarafından özel olarak tedavi edilebilir - ilgisi yok genellikle boş alan ile yoktur. Ve {}verilemeyecek zorunda değildir. Ben, her durumda düşünemiyorum, en azından zaman zaman bir Bourne tarzı kabuğu, gelen find yürütmesini {}, bir argüman olarak tek başına görünen, hiçbir şey içiyle, olur Alıntı
findkendinden kaçan kulplar çıkıyor ama senaryo yazarken olmak kötü bir alışkanlık değil. Acımıyor.
findkaçan idare etmedi, "{}"yine aynı etkiye sahip olacaktır {}--just ne yerine hem çalışma, çalışacak. Bu {}ve "{}"aynı şekilde davranmak, bulmanın herhangi bir özel özelliği nedeniyle değil ve olamaz. Bazı programlar bu genişletilmiş olur ne kabuk tarafından genişletilmiş alır kafa karışıklığı olduğunu kötü bir alışkanlık. Hepimiz bu hatayı zaman zaman yapıyoruz, ama bu hala bir hata - en iyi uygulama değil. (Hala {}insanlara ayracı genişleme için bir model olmadığını görmelerine yardım etmek için teklif verebilir, ancak bu kelime bölünmesi ile ilgisizdir.)
{}in-exec(okur böylece-exec rm "{}" \;). Bu, boşlukların düzgün bir şekilde ele alınmasını sağlar ... Ve-deletebunun yerine işlevi kullanabilirsiniz-exec.