[Zurück] [Home] [Weiter]       http://rowa.giso.de  

Eine frei verwendbare Unix-Grundlagenschulung mit muLinux

Um diese Übung auf unsere Arbeitsdiskette zu speichern, legen wir diese in das Disketten-Laufwerk, mounten das Laufwerk nach /a und wechseln in das Verzeichnis /a.
/# mount /dev/fd0 /a
/# cd /a
/a# _

Dateien suchen und finden mit find

Unix besitzt ein umfangreiches Verzeichnissystem. Die Suche nach bestimmten Dateien gleicht manchmal der Suche nach der Nadel im Heuhaufen. Für diese Suche stellt Unix den Befehl find zur Verfügung. Dieser Befehl durchsucht ein Startverzeichnis und alle dort enthaltenen Unterverzeichnisse nach Dateien, die bestimmten Kriterien genügen. Auf diese Dateien wird dann ein find-spezifischer Befehl angewendet. Die allgemeine Syntax ist:

/# find Verzeichnis Optionen

Leider verfügt muLinux-Variante von find längst nicht über alle Möglichkeiten wie die Standardvariante. Es ist aber trotzdem erstaunlich, wie viel Unix-Befehle auf eine Diskette passen.

Das angegebene Verzeichnis ist das Startverzeichnis für die Suche. Es wird dieses Verzeichnis und all Unterverzeichnisse durchsucht. Es ist meist ungünstig das Hauptverzeichnis / anzugeben, da die Suche mitunter sehr lange dauert.

Optionen

Die Optionen definieren die Suchbedingungen und die damit zusammenhängenden Aktionen.

-name Dateiename

Die Option -name bewirkt eine Suche nach Dateien oder Verzeichnisse mit dem hier angegebenen Dateienamen. Leider akzeptiert die muLinux-Variante von find hier keine Wildcard-Zeichen, wie z. B. den Stern *.

-user Nutzername

Mit -user können Dateien oder Verzeichnisse eines Nutzers gesucht werden.

-print

Die Option -print ist eine Aktion. Diese gibt die gefundenen Dateienamen aus. Genaugenommen ist die Angabe von -print bei der muLinux-Variante von find nicht notwendig. Die Standardvariante von find enthält noch andere Aktionsvarianten, z. B. das Ausführen von Programmen bei bestimmten Bedingungen.

Beispiele

/# find / -name passwd -print

Es wird, beginnend vom Hauptverzeichnis /, nach allen Dateien mit den Namen "passwd" gesucht. Diese werden durch -print auf den Bildschirm ausgegeben. Es erscheinen aber auch Fehlermeldungen, da Unterverzeichnisse von /proc nicht durchsucht werden können. Wer diese Fehlermeldungen nicht sehen will, schickt sie einfach in den Mülleimer:

/# find / -name passwd -print 2> /dev/null

Wir modifizieren diesen Befehl (Befehlswiederholung mit Cursortaste auf), um nach allen Dateien mit dem Namen ls zu suchen:

/# find / -name ls -print 2> /dev/null

Dieser Befehl findet auch Dateien, in denen sich die Buchstabenfolge "ls" befindet.

/# find / -user craxi -print 2> /dev/null > /a/gefunden.txt

Alle Namen von Dateien des Nutzer "craxi" werden in der Datei "gefunden.txt" auf der Diskette gespeichert. Fehlermeldungen werden ignoriert.

/# find -h

Die Option -h listet alle Optionen von find auf.

Wer die Möglichkeit hat an einen "richtigen" Unix zu arbeiten, sollte sich unbedingt den Befehl find mit allen seinen Optionen anschauen. Außerdem gibt es dort auch den schnelleren Such-Befehl locate.

Programme finden mit which

Das Programm which gibt den Pfad eines Befehls aus.

/# which ls
/bin/ls

Das Programm ls befindet sich also im Verzeichnis /bin.

/# which find
/usr/bin/find

Das Programm find ist im Verzeichnis /usr/bin.

Dateiart feststellen mit file

Bei der Vielzahl von Dateien kann es passieren, daß man nicht weis, was sich in einer Datei (engl. file) verbirgt. Hier hilft der Befehl file:

file Dateiename(n)

Der Befehl versucht aufgrund der Anfangsdaten in der Datei herauszufinden, um welchen Inhalt es sich bei der angegebenen Datei oder den Dateien handelt.

Beispiele

/# file /etc
/etc: directory

/etc ist also ein Verzeichnis (engl. directory).

/# file /etc/passwd
/etc/passwd: ASCII text or data

Die Datei passwd ist eine ASCII-Datei.

/# file /etc/* | grep "link"

Hier werden alles aller Links im Verzeichnis /etc angezeigt.

/# file /bin/cat
/bin/cat: ELF executable

/bin/cat ist ein ausführbares Programm.

Um diese Übung zu beenden heben wir die mount-Zuordnung unserer Arbeitsdiskette auf.
/a# cd /
/# umount /a
/# _

[Zurück] [Home] [Weiter]