Hallo PERLMONKS und Gurus,
auch auf die Gefahr hin gesteinigt zu werden ich blicke bei diesem Skript hier nicht mehr wirklich durch. Ich möchte in einem Ordner $ordner = <STDIN>;
sämtliche Dateien außer . und .. sowie Links löschen. Ist dies erfolgt soll der dann leere Ordner gelöscht werden.
Dazu habe ich dieses kleine Skript geschrieben:
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
use strict;
my $sammel_pfad = "/home/uli/logs";
my $log_datei = ">$sammel_pfad/loesch_logfile.txt";
print "In welchen Ordner soll ich alle Dateien loeschen?\n";
my $ordner = <STDIN>;
chomp $ordner;
print "Danke soll ich dann wirklich alle Dateien in $ordner loeschen?\n";
my $entscheidung = <STDIN>;
chomp($entscheidung);
if($entscheidung eq 'j') {
print "#\n#ALLE Dateien in $ordner werden gelöscht\n#\n";
} else {
print "#\n#Breche das Programm ab \n#\n";
die;
}
open(LOGFILE, $log_datei) or die "Kann LOG_Datei $log_datei nicht oeffnen: $!\n";
&loesche($ordner);
print "#\n#\n# Schreibe ab jetzt in Log Datei $log_datei !\n#\n#\n";
close LOGFILE;
sub loesche {
opendir(DIR, $ordner)or die "$!";
my @remove = readdir(DIR);
close(DIR);
my ($ordner) = @_;
foreach my $datei (@remove){
if ("$datei" eq "." or "$datei" eq "..") {
next;
}
if (-l "$ordner/$datei") {
print "Habe einen Link $datei gefunden loesche diesen nicht\n";
next;
} else {
unlink("$ordner/$datei");
print LOGFILE "Hallo\n";
print LOGFILE "#\n#\n#\n";
print LOGFILE "Habe die Datei $datei geloescht!\n";
}
rmdir($ordner) or die $!;
}
Der Perl Comnpiler gibt mir zurück:
Datei oder Verzeichnis nicht gefunden at ./ordner_loeschen2.pl line 34, <STDIN> line 2.
Das verstehe ich als PERL Neuling so dass $ordner nicht gefunden wird
also dies hier niocht ausgeführt wird:
opendir(DIR, $ordner)or die "$!";
Wobei mir dies nicht wirklich was sagt <STDIN> line 2
Falls ich die Fehlermeldung richtig interpretiere, verstehe ich allerdings nicht, weshalb $ordner nicht gefunden respektive geöffnet wird.
Könnte mir das bitte jemand erklären, ich beisse mir seit Tagen daran die Zähne aus.
Danke
hcx
modedit Editiert von GwenDragon: Bitte Code in PERL oder CODE-Tags stellen; Titel gekürzt
Last edited: 2011-07-02 18:52:46 +0200 (CEST)