Linux'ta 1 yıldan eski dosyalar nasıl silinir? [çiftleme]


9

Olası Çoğaltma:
Linux'ta belirli bir tarihten daha büyük dosyaları nasıl silebilirim

Geçerli dizindeki tüm dosyaları ve bir yıldan eski alt dizinlerini nasıl silebilirim?


1
Yap man find. Boom.

1
Kapanışlara dikkat edin: diğer soru aslında kafa karıştırıcı bir şekilde farklıdır, cevapları aktarılması tamamen kolay değildir.
Gilles 'SO- kötü olmayı kes

Yanıtlar:


15
find /the/dir/to/start/in -type f -mtime +365 -ls -exec rm -f -- {} \;

2
find /path/to/files -type f -mtime +365 -deletedaha kolay olurdu.
Chris S

-delete benim aix bulmuyorum bu yüzden kullanmaya alışkın değilim. Gerçi onun diğer bulmak ikili uygulamasına sevindim.
bot403

find … -exec rm -f {} +biraz daha hızlı olacak (ve eski sistemler dışında taşınabilir).
Gilles 'SO- kötü olmayı kes

1
Ayrıca, --ilk dosya adının a ile başlaması durumunda kullanmak iyi bir fikirdir -(ancak, geçilen dizin finda ile başlamazsa gerçekleşmeyeceğini garanti edebilirsiniz -).
Gilles 'SO- kötü olmayı kes

Neyi silmek üzereyken görmediğinizden ve dünyada neden -f ile silmeye zorlandığınızdan bu son derece tehlikelidir? Bazı dosyalar bir nedenle korunur. Bulma sonuçlarını bir dosyada saklamak, sonra bunları incelemek ve dosyanın içeriğinde rm çalıştırmak çok daha güvenlidir.
Petr

2

Çok sayıda dosya kaldırıyorsanız, bu genellikle "-exec" den veya "xargs" a borudan çok daha hızlıdır:

find . -type f -mtime +365 | perl -lne unlink
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.