Shell Script ile Gereksiz Dosyaları Silme

Aşağıdaki Shell Script sayesinde Unix/Linux makinenizdeki gereksiz dosyaları ilgili dizinden silebilirsiniz.
Script’i makinenizde bulunan Crontab uygulamasına ekleyerek, düzenli olarak çalışmasını sağlayabilirsiniz.
Çalışma mantığı olarak;
- flag adında bir değişken belirleyip sıfıra eşitliyoruz.
- listoffile değişkeni ile silme işlemini yapacağımız dizindeki dosyaların sayısını çıkartıyoruz.
- Sonrasında -4 değerini girerek yani, son 3 dosyaya dokunma şeklinde bir fonksiyon yazıyoruz.
- {print $9} komutu ile sadece dosya isimlerini çekiyoruz.
- flag=0 diye bir değişken atamıştık hatırlarsanız. Flag değişkeni her zaman bir bir artacak şekilde, dosyaları for ile döndürüp, son 3 dosya kalana kadar silme işlemini gerçekleştiriyoruz.
- En sonda, flag değişkeni, listoffile değişkenine eşit olduğu zaman (yani son 3 dosyaya gelindiği zaman) kendini break ediyor.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
#!/bin/bash flag=0 listoffile=`ls -l /home/directory | wc -l` listoffile=$(($listoffile - 4 )) for i in `ls -l /home/directory | awk -F" " '{print $9}'` do echo $i flag=$(($flag + 1 )) delete=`rm -r /home/directory/$i` echo $delete if [ $flag -eq $listoffile ] then break fi done |