ubuntuusers.de

Magika

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


Du möchtest den Artikel für eine weitere Ubuntu-Version testen? Mitarbeit im Wiki ist immer willkommen! Dazu sind die Hinweise zum Testen von Artikeln zu beachten.

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

Magika 🇬🇧 ist ein Python-basiertes Programm zum Erkennen des MIME-Typs einer Datei. Dazu wird eine KI-basierter Ansatz verwendet und nicht wie z.B. bei file die magic bytes einer Datei.

Magika läuft komplett lokal, d.h. das Datenmodel wird mit installiert. Diese ist laut Angaben der Entwickler nur ungefähr ein Megabyte groß, wodurch die Erkennung des Dateitypes extrem schnell ist. Zur Zeit werden ungefähr 110 Dateitypen erkannt. Neben dem Kommandozeilenprogramm namens magika gibt es auch ein Modul für Python und JavaScript, um Magika aus diesen beiden Programmiersprachen heraus zu nutzen.

Magika wird von Google entwickelt.

Installation

Magika ist nicht in den Paketquellen von Ubuntu enthalten, kann aber mit Hilfe von pip in einem venv installiert werden[1]:

pip3 install magika 

Wer Magika außerhalb eines venv installieren möchte, muss pip mit der entsprechenden Option aufrufen.

Nutzung

Die allgemeine Syntax zum Aufruf von Magika lautet[1]:

magika [OPTION] DATEI 

Beispiel:

magika irgendeine_datei 

irgendeine_datei: OpenDocument Text (document)

Hier wird die Datei irgendeine_datei als OpenDocument Textdokument (dem Standardformat von LibreOffice Writer) identifiziert.

Magika kennt eine Reihen von Optionen:

Optionen von magika
Option Erklärung
-i, --mine-type Gibt den Dateityp als MIME-Typ statt als Text aus, also z.B. application/vnd.oasis.opendocument.text für Open Document Text Dateien.
-l, --label Gibt den Dateityp in Form der Dateiendung aus, also z.B. odt für Open Document Text Dateien.
-c, --compatibility-mode Erzeugt eine Ausgabe ähnlich der des Befehl file.
-s, --output-score Gibt aus, wie hoch die Magika die Wahrscheinlichkeit sieht, dass der ausgegeben Dateityp stimmt.
--json Ausgabe im JSON-Format
-r, --recursive Wird statt einer Datei ein Verzeichnis angegeben, erfolgt die Ausgabe für alle Dateien im Verzeichnis.
--list-output-content-types Gibt eine Liste der unterstützten Format aus.

Magika kennt noch eine Reihe weiterer Optionen. Diese kann man sich über den Aufruf von magika -h ausgeben lassen.

Ein weiteres Beispiel: Es wird der Dateityp für alle Dateien im Verzeichnis bin/ inklusive Abschätzung der Wahrscheinlichkeit, wie zutreffend der ermittelte Dateityp ist, ausgegeben:

magika -rs bin/ 

bin/Activate.ps1: Powershell source (code) 100%
bin/activate: Shell script (code) 99%
bin/activate.csh: Shell script (code) 97%
bin/activate.fish: Generic text document (text) [Low-confidence model best-guess: Shell script (code), score=44] 44%
bin/coloredlogs: Python source (code) 99%
bin/dotenv: Python source (code) 99%
bin/f2py: Python source (code) 99%
bin/humanfriendly: Python source (code) 99%
bin/isympy: Python source (code) 99%
bin/magika: Python source (code) 99%
bin/onnxruntime_test: Python source (code) 99%
bin/pip: Python source (code) 99%
bin/pip3: Python source (code) 99%
bin/pip3.12: Python source (code) 99%
bin/python: ELF executable (executable) 100%
bin/python3: ELF executable (executable) 100%
bin/python3.12: ELF executable (executable) 100%
bin/tabulate: Python source (code) 99%
bin/tqdm: Python source (code) 99%

Nutzung in Python und JavaScript Skripten

Magika bringt jeweils ein Python-Modul und ein JavaScript Modul mit, mit der die Nutzung des Programms direkt aus einem Python-Skript bzw. JavaScript-Skript möglich ist. Weitere Hinweise zu Nutzung findet man in der Dokumentation:

Diese Revision wurde am 14. April 2024 07:24 von kB erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Python, Shell, Programmierung