Linux'ta `rm` kullanarak bir döngü ile dosyaları silme


0

Ben gibi dosyaları var file.log.1.gz, file.log.2.gz, ..., file.log.100.gz. Bu dosyaları silmek 1için bir döngü olmak istiyorum 100. Bu nasıl yapılabilir?

Linux'ta bu komutu denedim:

for i in $(seq 1 100); do rm -rf file.log.$i.gz

Bu komutu denediğinde ne oldu?
David Z,

Bu komutu kopyalamalı mıyım, terminale yapıştırıp çalıştırmalı mıyım .... hmm ... sanıyor .... hayır teşekkür ederim, rm şeytanın komutudur: ne yapacağından emin olduğundan emin ol ...
Solar Mike

Neden sadece bu dosyaları tutan klasörü çıkartıp değiştirmiyorsunuz? Geçmişte çeşitli klasörlerde 180000 dosyaları kaldırmak için bir tedavi çalıştım ....
Solar Mike

Bu klasöre ihtiyacım var, orada ihtiyacım olan 50+ dosya var, bu yüzden sadece silemiyorum. Kullandığım komut bash'de ve hiçbir şey yapmıyor, bilmeme rağmen: $ (i. 100 için), bash'ta bir döngü.
Asa

Sıra çözümünüz bunu yapacak olsa da, eğer günlük dosyasının bakımı için ve eski günlüklerden kurtulmak istiyorsanız 'find / path / to / dir -type f -ctime + XXX -exec rm {} gibi bir şey çalıştırabilirsiniz. + `ki XXX, saklamak istediğiniz gün sayısıdır. İstediğinizi kontrol etmek için ilk kez turda rm'yi yankı ile değiştirmek isteyebilirsiniz. Bunu otomatik olarak yapmak için cron'da periyodik olarak çalışmak üzere bu dosyayı ekleyebilirsiniz.
davidgo

Yanıtlar:


2

Sizin doneeksik.

for i in $(seq 1 100); do rm -f file.log.$i.gz; done

Ben -rargüman bir dosya olduğunda özyineleme işe yaramaz çünkü kaldırıldı .


Bu döngüsüz sözdizimi de çalışmalıdır bash. Tüm isimleri bir tek besler rm:

rm file.log.{1..100}.gz
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.