|
Ein einfaches find-Programm
Termin
Die Lösung für diese Aufgabe ist bis zum 03.12.2006 einzureichen.
Aufgabe 2 -- Ein einfaches find-Programm
Ziel dieses Praktikums soll es sein, Sie mit den grundlegenden
Operationen und Strukturen innerhalb eines UNIX-Dateisystems vertraut
zu machen.
Das Unix find Programm sucht Dateien, die
bestimmte Bedingungen erfüllen. Implementieren Sie ein kleines find
Programm, das folgende Syntax akzeptiert:
find <directory name> [-name <pattern>] [-type <f | d>] [-follow] [-xdev]
Sind die Bedingungen erfüllt (wenn Bedingungen angegeben wurden),
wird der Name des Files ausgedruckt. Die Option
-follow soll find dazu veranlassen,
symbolischen Links zu folgen. Die Option -xdev soll
find dazu veranlassen, nicht in Verzeichnissen zu suchen, die sich auf
anderen Dateisystemen befinden. Als Parameter für -name kann
ein Wildcard-Pattern folgender Form angegeben werden:
A string is a wildcard pattern if it contains one of the characters `?', `*' or
`['. Globbing is the operation that expands a wildcard pattern into the list of
pathnames matching the pattern. Matching is defined by:
A `?' (not between brackets) matches any single character.
A `*' (not between brackets) matches any string, including the empty string.
...
(see also glob(7))
Sehen Sie sich dazu die Funktionen der Familie
readdir() und
stat() an.
Eine vollständige Lösung besteht aus den (funktionstüchtigen) Quelldateien
(in C oder C++) sowie einem Makefile zum Übersetzen des find-Programmes.
Material
- Literatur:
-
- W.R. Stevens: "Advanced Programming in the UNIX Environment"
- Manpage zu find (z.B. hier)
- Manpages zu readdir(), stat(), glob()
|