In der vorherigen Lektion hast du mit touch eine Datei ohne Erweiterung erstellt. Unter Linux muss ein Dateiname nicht verraten, was eine Datei enthält: Eine Datei namens funny.gif ist nicht zwangsläufig ein GIF-Bild.
Befehlszeile · Lektion 6
file
Lerne, den wahrscheinlichen Inhaltstyp einer Datei unabhängig von ihrem Namen oder ihrer Endung zu bestimmen.
Mit file untersuchst du eine Datei und lässt dir ihren wahrscheinlichen Typ melden:
$ file banana.jpg
banana.jpg: JPEG image data
Warum Dateiendungen nicht ausreichen
Linux-Werkzeuge benötigen normalerweise keine Dateiendung, um den Dateityp zu bestimmen. Ein Shell-Skript kann backup, eine Textdatei README heißen und ein Bild kann eine irreführende Endung besitzen. file untersucht unter anderem Metadaten des Dateisystems und erkennbare Muster im Inhalt.
$ file README
README: ASCII text
$ file /bin/ls
/bin/ls: ELF 64-bit LSB executable
Das Ergebnis ist eine Klassifizierung, keine Garantie. Bei ungewöhnlichen, unvollständigen oder beschädigten Dateien liefert file möglicherweise nur eine allgemeine Beschreibung wie data.
Eine Datei namens report.jpg enthält möglicherweise kein Bild. Welcher Befehl prüft ihren wahrscheinlichen Inhaltstyp?
Mehrere Dateien prüfen
Du kannst mehrere Dateien auf einmal untersuchen:
$ file notes.txt image.png archive.tar.gz
notes.txt: ASCII text
image.png: PNG image data
archive.tar.gz: gzip compressed data
Auch ein Shell-Platzhalter ist möglich. Die Shell erweitert * zu den passenden Namen, bevor file sie untersucht:
$ file *
Welcher Befehl lässt file alle nicht versteckten Namen untersuchen, auf die * im aktuellen Verzeichnis passt?
MIME-Informationen anzeigen
Die Option -i gibt Informationen im MIME-Stil aus, darunter einen Medientyp und – sofern verfügbar – einen Zeichensatz. Diese Form ist nützlich, wenn ein anderes Programm Werte wie text/html erwartet.
$ file -i index.html
index.html: text/html; charset=us-ascii
Welcher Befehl meldet MIME-Informationen für index.html?
Nützliche file-Optionen
-i: Zeigt Informationen im MIME-Stil an.-b: Verwendet den Kurzmodus und lässt den Dateinamen in der Ausgabe weg.-L: Folgt symbolischen Links und klassifiziert deren Ziele.-z: Versucht, den Inhalt komprimierter Dateien zu untersuchen.
Zum Beispiel:
$ file -b notes.txt
ASCII text
Welcher Befehl klassifiziert notes.txt, lässt aber den Dateinamen in der Ausgabe weg?
Lektion abgeschlossen
Sie haben file abgeschlossen
Du kannst nun mit file untersuchen, was eine Datei wahrscheinlich enthält.
Klassifiziere eine Datei, ohne ihrer Endung zu vertrauen.
Untersuche mehrere Pfade mit einem Befehl.
Fordere Informationen im MIME-Stil an.
Steuere den Umgang mit Links, komprimierten Daten und Ausgabebezeichnungen.
Lernfortschritt speichern
Erstellen Sie ein kostenloses Konto, um diese Lektion zu speichern und auf jedem Gerät weiterzulernen.
Kostenloses Konto erstellen