Identifizieren und Verwenden von Dateitypen

Wenn Sie noch Linux-Neuling sind, werden Sie sich sicher schon gefragt haben, was die mitunter etwas exotisch wirkenden Dateierweiterungen bedeuten mögen. Unter einer Dateierweiterung wird der letzte Teil des Dateinamens nach dem Punkt am Ende verstanden (bei der Datei sneakers.txt ist beispielsweise "txt" die Erweiterung dieser Datei).

Im Folgenden erhalten Sie einen kurzen Überblick über Erweiterungen und ihre Bedeutungen:

Komprimierte/archivierte Dateien

Dateiformate

Systemdateien

Dateien für Programmierung und Skripterstellung

Die Dateierweiterungen werden jedoch nicht immer und vor allem nicht immer konsistent verwendet. Wie müssen Sie nun vorgehen, wenn eine Datei über keine Erweiterung verfügt oder die Erweiterung nicht mit dem tatsächlichen Dateityp übereinstimmt?

Für diesen Fall steht Ihnen der Befehl file zur Verfügung.

In Kapitel 15 hatten wir eine Datei mit der Bezeichnung saturday erstellt und dieser keine Dateierweiterung zugeordnet. Mit dem Befehl file lässt sich nun der Dateityp problemlos wie folgt ermitteln:

file saturday
	    

Sie wissen nun also, dass es sich bei saturday um eine Textdatei handelt. Für das Anzeigen von Textdateien können Sie cat, more oder less verwenden.

TipLesen Sie die man-Seite
 

Wenn Sie mehr über den Befehl file erfahren möchten, können Sie die man-Seite zu file durch Eingeben von man file anzeigen.

Und wenn wir schon beim Lesen von Dateien sind…

Für das Lesen von Dateien stehen Ihnen unter Linux zahlreiche Möglichkeiten zur Verfügung. In Kapitel 15 wurden bereits die Pager more und less angesprochen, die ihre Bezeichnung deshalb tragen, weil Sie mit ihnen jeweils einzelne Seiten (engl. page) auf dem Bildschirm anzeigen können. Sie wissen auch bereits, dass Sie mit dem Befehl cat Dateien nicht nur anzeigen, sondern auch bearbeiten können.

Wenn Sie indes Readme-Dateien, man-Seiten oder andere Dokumente anzeigen möchten, stehen Ihnen hierfür noch weitere Tools zur Verfügung.

Zum Lesen von Textdateien können Sie beispielsweise die Texteditoren pico, emacs und vim verwenden. Als Alternative bieten sich für diesen Zweck auch die Pager more und less sowie die Viewer head, tail, cat und grep an.

Im Folgenden beschäftigen wir uns nun mit einigen Funktionen dieser Tools.

Der Befehl less

In Kapitel 15 wurde bereits der Pager less kurz vorgestellt. Bei less handelt es sich um den Pager, der für das Anzeigen von man-Seiten verwendet wird.

Für eine Demonstration der Funktionen von less bietet sich die man-Seite für less geradezu an.

man less
	      

Um vorzublättern, drücken Sie die Leertaste, zum Zurückblättern verwenden Sie die Taste B, und zum Beenden Q.

Der Pager less bietet Ihnen jedoch noch weitere leistungsfähige Funktionen wie das horizontale Scrollen und die Möglichkeit, die Anzeige um eine bestimmte Anzahl von Zeilen zu scrollen.

Der Befehl more

So seltsam dies auch erscheinen mag - more bietet Ihnen im Gegensatz zu seinem Namen weniger Funktionen als less (less stellt eine Weiterentwicklung von more dar).

Auch in diesem Fall zeigen wir wieder die man-Seite zum Befehl an - allerdings verwenden wir im Fall von more hierfür auch den Befehl more. Zu diesem Zweck leiten wir die Ausgabe von man mit Hilfe von Pipes an more weiter.

man more | more
	      

Auch wenn das Ergebnis auf den ersten Blick nicht grundlegend anders aussehen mag, stellt more doch weniger Funktionen als less zur Verfügung. Der auffälligste Unterschied ist am Anfang wohl die Tatsache, dass more keine Möglichkeit zum Zurückblättern in Ihren Dokumenten bietet, auch wenn die Funktionen zum Vorblättern mit der Leertaste und zum Beenden der Anzeige mit Q übereinstimmen.

Der Befehl head

Sie können den Befehl head verwenden, wenn Sie nur den Anfang einer Datei einsehen möchten. Der Befehl lautet:

head <Dateiname>
	      

Head kann durchaus nützlich sein, auch wenn Sie über die Dateilänge keine weiteren Informationen erhalten, da nur die ersten Zeilen der Datei angezeigt werden. Standardmäßig gibt der Befehl die ersten 10 Zeilen aus. Sie können diese Einstellung jedoch wie folgt ändern:

head -20 <Dateiname>
            

Weitere Informationen finden Sie auf der man-Seite zu head, die Sie durch Eingabe von man head anzeigen können. Vermutlich werden Sie feststellen, dass less oder more geeignetere Tools darstellen, da Sie mit diesem Programmen in der Datei blättern können (und die gesuchte Information häufig nicht direkt am Anfang der Datei steht).

Der Befehl tail

Das Gegenteil von head ist (wie nicht anders zu erwarten) tail. Mit tail können Sie die letzten 10 Zeilen einer Datei anzeigen.

Der Befehl cat

Der Befehl cat (die Abkürzung steht für "concatenation", also Verkettung) zeigt den Inhalt der gesamten Datei auf dem Bildschirm an. Die Verwendung von cat empfiehlt sich vor allem für kurze Dateien, wie zum Beispiel für die Datei sneakers.txt. Wenn eine Datei hingegen etwas länger ist, scrollt der Inhalt rasch über den Bildschirm, da cat ja die gesamte Datei anzeigt.

Der Befehl grep

Der Befehl grep ist für das Suchen nach bestimmten Zeichenketten in einer Datei bestens geeignet. Angenommen, Sie suchen nach Fundstellen für das Wort "Kaffee" in der Datei sneakers.txt, die sich in Ihrem Anmeldeverzeichnis befindet. Für die Suche können Sie folgenden Befehl eingeben:

grep Kaffee sneakers.txt
          

Daraufhin werden alle Zeilen angezeigt, die das Wort "Kaffee" enthalten.

TipBeachten Sie immer die Groß- und Kleinschreibung
 

Wenn Sie nichts anderes angeben, wird bei der Suche mit grep zwischen Groß- und Kleinschreibung unterschieden. Dies bedeutet, dass Sie bei der Suche nach Kaffee andere Ergebnisse erhalten als bei der Suche nach kaffee. Wenn Sie die Unterscheidung zwischen Groß- und Kleinbuchstaben aufheben möchten, steht Ihnen bei grep die Option -i zur Verfügung. Weitere Informationen zu diesem Befehl finden Sie in der man-Seite zu grep.

E/A-Umleitung und Pipes

Beim Speichern und/oder Drucken von Informationen, die Sie sich zu einem späteren Zeitpunkt durchlesen möchten, können Sie selbstverständlich auch die Funktionen nutzen, die Ihnen Pipes und die Umleitung der Ausgabe zur Verfügung stellen. Über diese Funktionen haben Sie ja schon in einem früheren Kapitel einiges erfahren.

Sie können beispielsweise grep für die Suche nach bestimmten Daten in einer Datei verwenden und die Ergebnisse dieser Suche dann entweder in einer Datei speichern oder an einen Drucker weiterleiten.

Für das Drucken aller Fundstellen für "Kaffee" in sneakers.txt müssen Sie lediglich Folgendes eingeben:

grep Kaffee sneakers.txt | lpr
	      

Dieser Befehl bewirkt etwa dasselbe wie der Befehl ls -al /etc | more. Möglicherweise haben Sie diesen Befehl in Kapitel 15 zum Anzeigen des Inhalts von Verzeichnis /etc verwendet. Anschließend wird das Ergebnis über den Befehl more auf dem Bildschirm angezeigt.

TipVerwenden Sie in Zweifelsfällen immer >>
 

Beachten Sie in diesem Zusammenhang die Unterscheidung zwischen > und >>: Mit > wird die Datei überschrieben, während mit >> die neuen Daten an eine Datei angehängt werden. Wenn Sie sich nicht ganz sicher sind, was Sie tun möchten, empfiehlt sich die Verwendung von >>, da Sie auf diese Weise potentiell wertvolle Daten nicht verlieren (allerdings müssen Sie die entsprechende Datei möglicherweise bearbeiten, um die angehängten Daten wieder zu entfernen).

Platzhalter und reguläre Ausdrücke

Wie können Sie vorgehen, wenn Sie den Namen der gesuchten Datei vergessen haben? Schließlich können Sie Ihrem Computer ja nicht sagen, er solle eine Datei wie "sneak" oder "sneak oder so ähnlich" suchen.

Aber eigentlich steht Ihnen ja doch so eine ähnliche Funktion zur Verfügung. Mit Platzhaltern oder regulären Ausdrücken können Sie Aktionen für eine oder mehrere Datei(en) durchführen, ohne den vollständigen Dateinamen zu kennen. Sie geben lediglich den Teil des Namens an, den Sie kennen, und ersetzen den restlichen Abschnitt mit einem Platzhalter.

TipSo finden Sie weitere Informationen über Platzhalter und reguläre Ausdrücke
 

Wenn Sie weitere Informationen über Platzhalter und reguläre Ausdrücke benötigen, können Sie die man-Seite zu bash mit dem Befehl man bash aufrufen. Sie erinnern sich mit Sicherheit noch, dass Sie die Datei mit dem Befehl man bash | col -b > bash.txt in einer Textdatei speichern können. Dann können Sie die Datei mit less oder pico öffnen und lesen (der Befehl lautet pico bash.txt). Wenn Sie die Datei ausdrucken möchten, sollten Sie allerdings berücksichtigen, dass diese man-Seite ziemlich umfangreich ist.

Da wir wissen, dass der Dateiname "sneak-irgendetwas.txt" lautet, geben Sie folgenden Befehl ein:

ls sneak*.txt
	      

Auf diese Weise erfahren Sie dann den Namen der Datei:

sneakers.txt
	      

Vermutlich werden Sie künftig beim Suchen mit Platzhaltern am häufigsten ein Sternchen (*) verwenden. Mit Hilfe von Sternchen werden als Ergebnis Ihrer Suche alle Objekte angezeigt, die Ihrem Suchbegriff entsprechen. Geben Sie probeweise Folgendes ein:

ls *.txt
	      

oder:

ls sn*
	      

Selbst jetzt wird die Datei sneakers.txt angezeigt - nur werden sich im Laufe der Zeit immer mehr Textdateien auf Ihrer Festplatte befinden, die alle Ihrem Suchbegriff entsprechen und folglich als Ergebnis angezeigt werden.

Daher empfiehlt es sich, die Suche so weit wie möglich einzuschränken.

Eine Methode zum Einschränken der Suche besteht in der Verwendung des Fragezeichens (?) in Ihrem Suchbegriff. Ähnlich wie bei Verwendung eines Sternchens können Sie auch mit ? nach Dateien suchen, die Ihrem Suchmuster entsprechen.

Allerdings dient ? nur als Platzhalter für ein einzelnes Zeichen. Wenn Sie also nach sneaker?.txt suchen, erhalten Sie sneakers.txt als Ergebnis - und/oder sneakerz.txt, wenn es eine Datei diesen Namens geben würde.

Wenn ein Sternchen tatsächlich Bestandteil des Dateinamens sein sollte, wie beispielsweise bei einer Datei mit der Bezeichnung sneak*.txt (statt sneakers.txt), bietet sich die Verwendung regulärer Ausdrücke an.

Reguläre Ausdrücke sind komplizierter zu verwenden als Sternchen und Fragezeichen.

Wenn Sie einen umgekehrten Schrägstrich (\) verwenden, können Sie damit angeben, dass Sie mit dem Sternchen nicht einen sehr allgemeinen Suchbegriff verwenden, sondern ganz konkret nach einer Datei suchen, in deren Bezeichnung ein Sternchen vorkommt.

Wenn die Datei den Namen sneak*.txt trägt, geben Sie folgenden Befehl ein:

sneak\*.txt
	      

Im Folgenden erhalten Sie einen kurzen Überblick über Platzhalter und reguläre Ausdrücke:

  • * - Übereinstimmung mit beliebigen Zeichen

  • ? - Übereinstimmung mit einem beliebigen einzelnen Zeichen in einer Zeichenkette (wie bei sneaker?.txt)

  • \* - Übereinstimmung mit dem Zeichen *

  • \? - Übereinstimmung mit dem Zeichen ?

  • \) - Übereinstimmung mit dem Zeichen )

Sie können Platzhalter jedoch für weitaus mehr als nur für die Suche verwenden. Platzhalter sind auch beim Verschieben und Umbenennen von Dateien von großem Nutzen. Zudem sind reguläre Ausdrücke auch beim Umbenennen von Dateien praktisch, in deren Namen Zeichen wie * und ? vorkommen.

Wenn Sie darüber mehr erfahren möchten, müssen Sie lediglich den nächsten Abschnitt lesen.