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.