Startseite > Datei- und Verzeichnisverwaltung > file

file: Anleitung zur Dateityp-Identifikation

Identifiziert den Typ und die MIME-Informationen einer Datei, indem der tatsächliche Byte-Inhalt anstelle der Erweiterung überprüft wird. Verwendet die libmagic-Datenbank.

Übersicht

Der Befehl `file` identifiziert den Typ einer Datei, indem er deren Inhalt analysiert, anstatt sich auf die Dateierweiterung zu verlassen. Er erkennt verschiedene Formate wie Text/Binär, ausführbare Dateiformate (ELF), komprimierte Dateien, Bilder/Audio und kann auch MIME-Typen und Kodierungen ausgeben.

Hauptmerkmale

  • Identifikation basierend auf dem tatsächlichen Inhalt, unabhängig von der Erweiterung
  • Kann MIME-Typen und Zeichenkodierungen ausgeben
  • Wahlweise Identifikation des Ziels eines symbolischen Links oder des Links selbst
  • Versucht, das Innere komprimierter Dateien zu überprüfen (-z)

Anwendungsbeispiele

Situationen, in denen der Befehl `file` besonders nützlich ist.

  • Identifikation des tatsächlichen Formats einer Datei mit falscher Erweiterung (z.B. eine PDF, die sich als .jpg tarnt)
  • Bestimmung des Typs von Dateien ohne Erweiterung
  • Verzweigung der Verarbeitung in Skripten basierend auf dem Dateityp
  • Bestimmung des MIME-Typs hochgeladener Dateien in Web-/Netzwerkdiensten
  • Identifikation des symbolischen Links selbst oder seines Ziels
  • Analyse des Inhalts von komprimierten Dateien
  • Identifikation von ausführbaren Dateiformaten in der Sicherheitsanalyse und Forensik

Wichtige Optionen

Häufig verwendete Optionen, gruppiert nach Anwendungsfall.

1) 기본 동작 & 출력 제어

2) 입력/대상 지정

3) 매직 데이터베이스/제외/디버그

4) 도움말/버전

Erzeugter Befehl:

Kombinieren Sie die Befehle.

Beschreibung:

`file` Führen Sie den Befehl aus.

Kombinieren Sie diese Optionen und führen Sie die Befehle virtuell zusammen mit der KI aus.

Anwendungsbeispiele

Häufig verwendete Muster als Beispiele zusammengefasst.

Grundlegende Identifikation

file /bin/ls

Gibt den Dateityp im Standardformat aus

Kurze Ausgabe ohne Dateiname

file -b /bin/ls

Einfache Ausgabe zur leichteren Verarbeitung in Skripten

MIME-Typ/Kodierung

file --mime-type index.html && file --mime-encoding README.md

Nützlich zur Typidentifikation in Web-/Pipelines

Komprimiertes Archiv prüfen

file -z backup.tar.gz

Schätzt den tatsächlichen Inhalt einer komprimierten Datei

Symbolischer Link selbst vs. Ziel

file -h symlink && file -L symlink

Prüft den Link selbst (-h) oder folgt dem Ziel (-L)

MIME-Typen mit find stapelweise überprüfen

find . -type f -print0 | xargs -0 file --mime-type

Übergibt Dateilisten sicher mit NUL-Trennzeichen

Speicherort der Magic-Datenbank

Der Pfad kann je nach System und Distribution variieren.

🪄 Standard kompilierte Magic-DB

/usr/share/file/magic.mgc

Standardpfad der meisten Distributionen

📁 Quell-Magic-Verzeichnis

/usr/share/file/magic/

Quellregeln vor der Kompilierung (original, nicht .mgc)

Exit-Codes

Beachten Sie diese für die Verzweigungslogik in Skripten.

Code Bedeutung
0 Normal: Identifikation erfolgreich (oder angeforderte Aktion erfolgreich)
1 Allgemeines Problem: Datei nicht vorhanden/nicht zugänglich/Identifikation fehlgeschlagen usw.
2 Verwendungsfehler oder Systemfehler

Installation

Meistens standardmäßig enthalten, andernfalls wie folgt installieren:

Debian/Ubuntu

sudo apt update && sudo apt install -y file

RHEL/CentOS/Fedora

sudo dnf install -y file

Arch Linux

sudo pacman -S --needed file

openSUSE

sudo zypper install -y file

Tipps & Hinweise

  • Die explizite Verwendung von `--mime-type` und `--mime-encoding` kann Unterschiede im Verhalten von `-i/--mime` je nach Distribution/Version vermeiden.
  • Umgang mit symbolischen Links: Verwenden Sie `-h`, um den Link selbst zu sehen, und `-L`, um die Zieldatei zu überprüfen.
  • Bei der Massenverarbeitung ist das Muster `find -print0 | xargs -0` sicher für Dateinamen, die Leerzeichen/Zeilenumbrüche enthalten.
  • Je nach Komprimierungsformat kann `-z` möglicherweise nicht immer den Inhalt überprüfen. Dekomprimieren Sie die Datei zuerst, falls erforderlich.

Verwandte Befehle

Funktional ähnliche oder häufig zusammen verwendete Befehle.


Gleiche Kategorie Befehle