User since
2008-03-17
54
Artikel
BenutzerIn
Hallo!
gibt es eine einfache und elegante Möglichkeit bei Verwendung von find() Punktdateien und -Verzeichnisse auszuschließen?
Die einzige Möglichkeit, die mir im Moment einfällt wäre den Teil am Ende von File::Find::name abzuschneiden und darauf zu prüfen, ob er mit einem Punkt beginnt und danach noch \w-Zeichen folgen. Geht es auch weniger kompliziert?
Gruß,
tsy
Hallo tsy,
ich bin zwar nur Gast hier, glaube aber dennoch die Antwort zu wissen:
Du musst doch nur noch beim Überprüfen, ob dein File das gewünschte ist, die Abfrage mitdazunehmen, ob die Datei mit einem Punkt beginnt:
if(!($dingens =~ /^\./)){ ....code.....}
Dann sollte doch das Ganze klappen...wenn ich mich nicht irre.
Grüße Jürgen
User since
2007-05-11
923
Artikel
HausmeisterIn
Gast+2008-07-21 14:05:46--Du musst doch nur noch beim Überprüfen, ob dein File das gewünschte ist, die Abfrage mitdazunehmen, ob die Datei mit einem Punkt beginnt:
if(!($dingens =~ /^\./)){ ....code.....}
Das hindert aber File::Find nicht daran, in versteckte Verzeichnisse reinzugehen - wenn ich mich nicht irre ;-)
User since
2003-08-21
2614
Artikel
ModeratorIn
moritz+2008-07-21 14:10:57--Gast+2008-07-21 14:05:46--Du musst doch nur noch beim Überprüfen, ob dein File das gewünschte ist, die Abfrage mitdazunehmen, ob die Datei mit einem Punkt beginnt:
if(!($dingens =~ /^\./)){ ....code.....}
Das hindert aber File::Find nicht daran, in versteckte Verzeichnisse reinzugehen - wenn ich mich nicht irre ;-)
Wenn man so ein Verzeichnis antrifft, kann man ja $File::Find::Prune setzen -- wenn ich mich nicht irre.
Ich nochmal:
ich bin nach wie vor der Meinung das meine Lösung funktioniert!
Wenn nicht, dann bitte verbessern, hab z.Zt. nicht die Möglichkeit das auszuprobieren.
Da ich aber hier schon oft in alten Threads Hilfe gefunden habe, dachte ich, ich könnte auch mal jemanden helfen.
Aber ich muss/darf feststellen, dies hier ist ein Forum wie jedes andere auch ;)
Welche Antworten noch fehlen:
"Dies ist schoneinmal im Jahre 1785 in folgenden (LINK zur Aussage) Forum beantwortet worden"
oder
"ich gebe die Frage in Google ein, und der 1753 Eintrag weisst schon auf die Lösung hin"
Also: Ist meine Lösung richtig oder falsch? Wenn Sie falsch ist, was wäre richtig?
Grüße Jürgen
User since
2007-05-11
923
Artikel
HausmeisterIn
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
$ find
.
./.bar
./.bar/abc
./.bar/baz
./file-find.pl
./foo
./foo/blubb
./def
$ cat file-find.pl
#!/usr/bin/perl
use strict;
use warnings;
local $\ = "\n";
use File::Find;
find(sub {return if m/^\./; print }, '.');
__END__
$ perl file-find.pl
file-find.pl
def
abc
baz
foo
blubb
abc wird gefunden, obwohl es in einem versteckten Verzeichnis liegt.