Yanıtlar:
Bunu bu komutla yapabilirsiniz
find /path/to/files* -mtime +365 -exec rm {} \;
Bazıları açıklar
/path/to/files*
dosyalara giden yoldur.
-mtime
dosyanı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 find
ilk etapta, daha sonra find
yerine 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ı
find
kendinden kaçan kulplar çıkıyor ama senaryo yazarken olmak kötü bir alışkanlık değil. Acımıyor.
find
kaç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-delete
bunun yerine işlevi kullanabilirsiniz-exec
.