Thread mehrere Bedingungen um bestimmte Dateien zu löschen
(3 answers)
Opened by zenkko at 2009-03-25 14:57
schau dir mal mein nachfolgendes Script an, dort lösche ich alle Dateien in einem Verzeichnis die älter sind als 3Tage...daraus kannst du dir bestimmt auch eine passende Lösung basteln
Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 #!/usr/bin/perl use strict; use warnings; # Verzeichnispfad anpassen my $verzeichnis = "/verzeichnis"; # Alter der Dateien in Sekunden angeben my $alter = 60*60*24*3; # In Sekunden angeben! my @dirliste=('.'); while(@dirliste >0) { my $dir=shift(@dirliste); # nimmt das erste Element des Arrays und löscht es opendir(DIR,"$verzeichnis/$dir") or die "Konnte Verzeichnis $dir nicht öffnen ($!)"; while(my $d=readdir(DIR)) # aktuelles Verzeichnis durchlaufen { if (($d eq "\.")||($d eq "\.\.")){next}; # Links auf aktuelles und vorhergehndes Verzeichnis überspringen my $path="$dir/$d"; if(-d "$verzeichnis/$path") # wenn das aktuelle Element ein Verzeichnis ist, dann { push (@dirliste,$path); # hänge es an die Verzeichnisliste an } else # ist eine Datei { my @stat = stat("$verzeichnis/$path"); if ((time - $stat[8]) > $alter) { print "lösche $verzeichnis/$path\n"; unlink("$verzeichnis/$path"); } } } closedir(DIR); }; bitte als Verzeichnis nicht die Wurzel des Dateisystems angeben... Es gibt immer Leute die meinen, sie seien schlauer als ich. Das Schlimmste ist, sie sind es auch.
|