ubuntuusers.de

file

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:

Dieser Artikel ist größtenteils für alle Ubuntu-Versionen gültig.

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

file 🇬🇧 ist ein Kommandozeilenprogramm, welches den Dateityp einer Datei bestimmt. Dies geschieht aber nicht anhand der Dateiendung, sondern file untersucht einen Teil des Inhalts der Datei, um den Dateityp zu bestimmen.

file gehört zu den Urgesteinen der Unix-Welt, die erste Version datiert auf das Jahr 1973.

Installation

file ist in der Standardinstallation von Ubuntu enthalten, kann ansonsten aber über das Paket

  • file

Befehl zum Installieren der Pakete:

sudo apt-get install file 

Oder mit apturl installieren, Link: apt://file

installiert werden[1].

Benutzung

Die allgemeine Syntax von file lautet:

file  [OPTIONEN] DATEI(EN) 

Die Ausgabe sieht dann z.B. so aus:

file dokument.odt drawing.dwg daten.csv info.pdf 

dokument.odt: OpenDocument Text
drawing.dwg: DWG AutoDesk AutoCAD 2007/2008/2009
daten.csv: ASCII text
info.pdf: PDF document, version 1.7

Wo bekannt bzw. bestimmbar zeigt file auch die Formatversion der Datei an, im obigen Beispiel bei der Ausgabe zu der DWG und PDF Datei zu sehen.

Bei der Bestimmung des Dateityps nutzt file einen dreistufigen Mechanismus. Wer sich für die Details der einzelnen Stufen interessiert: diese sind in der Man-Page im Abschnitt "Description" erklärt. Die Daten, auf denen die "magischen Tests" von file zur Bestimmung basieren, liegt unter Ubuntu im Verzeichnis /usr/lib/file/magic.mgc.

Das Programm kennt eine Reihe von Optionen, die man sich inklusive Erklärung wie folgt anzeigen lassen kann:

file --help 

Mit der Option -i wird der MIME-Typ der Datei(en) ausgegeben statt der normalen Ausgabe von file:

file -i dokument.odt drawing.dwg daten.csv info.pdf 

dokument.odt: application/vnd.oasis.opendocument.text; charset=binary
drawing.dwg: image/vnd.dwg; charset=binary
daten.csv: text/plain; charset=us-ascii
info.pdf: application/pdf; charset=binary

Möchte man sich Informationen zu "special files" ausgeben lassen, wie z.B. den Dateien, die den Einhängepunkten von Laufwerken zugeordnet sind, muss man die Option -s nutzen, um eine aussagekräftigere Ausgabe zu bekommen:

file /dev/sdc 

gibt

/dev/sdc: block special (8/32)

Mit der Option -s sieht die Ausgabe so aus:

sudo file -s /dev/sdc 

/dev/sdc: Linux rev 1.0 ext4 filesystem data, UUID=3255683f-53a2-4fdf-91cf-b4c1041e2a62 (needs journal recovery) (extents) (64bit) (large files) (huge files)

Wie man sieht sind hier zusätzlich Root-Rechte[3] notwendig.

Mithilfe der Option -f liest file auch Dateinamen aus einer Textdatei. Pro Zeile ein Dateiname.

sudo file -f files.txt 

ssh_host_ed25519_key: OpenSSH private key
/bin/apt:             ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=6f62d73c4584d353d2bcbc6fb42b5e7cd1c476ba, for GNU/Linux 3.2.0, stripped

Diese Revision wurde am 21. Juli 2022 15:54 von mubuntuHH erstellt.