Die wichtigsten Datei Namen und deren Anwendung auf Linux
Linux Dateiendungen sehen aus wie unter Windows, bedeuten aber etwas anderes: Sie sind eine Beschriftung für euch, nicht ein Befehl an das System. Ob eine Datei ein Programm, ein Skript oder ein Urlaubsfoto ist, entscheidet unter Linux ihr Inhalt, und ob sie ausgeführt werden darf, entscheiden ihre Rechte. Wer gerade zu Linux wechselt, stolpert deshalb früher oder später über eine .txt-Datei, die sich als Programm entpuppt. Dieser Artikel ordnet die wichtigsten Endungen ein und zeigt, wie ihr den echten Dateityp herausfindet, bevor ihr doppelklickt. Kurz gesagt: Der Name ist ein Etikett, und Etiketten kann jeder drucken.

Linux Dateiendungen: Konvention statt Pflicht
Die Handbuchseite suffixes(7) formuliert es nüchtern: Es ist „customary“, also üblich, den Inhalt einer Datei mit der Endung anzuzeigen. Üblich heisst nicht verbindlich. Der Kernel fragt beim Starten eines Programms nicht nach der Endung, sondern nach zwei Dingen: Laut execve(2) muss die Datei entweder ein ausführbares Binärprogramm sein oder ein Skript, dessen erste Zeile mit #! und dem Interpreter beginnt. Und sie braucht das Ausführungsrecht, sonst meldet das System „Permission denied“. Wie diese Rechte funktionieren, steht ausführlich in Linux Gruppen und Berechtigungen einfach erklärt.
Den echten Dateityp mit file erkennen
Das Werkzeug dafür heisst file. Laut file(1) führt es drei Prüfungen nacheinander durch: Dateisystemtests, „magic tests“ und Sprachtests. Die magic tests suchen nach einer unveränderlichen Kennung an einer festen Stelle am Dateianfang, der sogenannten Magic Number. Der Name der Datei spielt dabei keine Rolle. Ein kleiner Versuch zeigt das: Ein Shell-Skript wird als hallo.txt gespeichert, eine Kopie des Programms ls als bild.jpg.
$ printf '#!/bin/sh\necho Hallo\n' > hallo.txt
$ cp /usr/bin/ls bild.jpg
$ file hallo.txt
hallo.txt: POSIX shell script, ASCII text executable
$ file --mime-type bild.jpg
bild.jpg: application/x-pie-executable
$ ./hallo.txt
bash: ./hallo.txt: Permission denied
$ chmod +x hallo.txt
$ ./hallo.txt
Hallo
Die „Textdatei“ ist ein Skript und läuft, sobald sie das Ausführungsrecht hat, das „Bild“ ist ein Programm. Die Ausgabe stammt von einem englischsprachigen System, auf einem deutschen steht an der Stelle von „Permission denied“ die übersetzte Meldung. Dateimanager und Desktop-Programme orientieren sich für die Wahl des Programms zum Öffnen zwar oft an der Endung, verlassen solltet ihr euch darauf aber nicht. Wer eine unbekannte Datei aus dem Netz vor sich hat, fragt zuerst file.
Versteckte Dateien: der Punkt am Anfang
Ein Punkt kann auch am Anfang eines Namens stehen, und dann ist er keine Endung, sondern ein Versteck. Dateien wie .bashrc oder .profile in eurem Home-Verzeichnis zeigt ls nur mit der Option -a an; die Handbuchseite ls(1) beschreibt sie mit „do not ignore entries starting with .“. In solchen Punktdateien und Punktordnern legen viele Programme ihre Einstellungen ab. Wo die systemweiten Gegenstücke liegen, erklärt der Artikel Linux Systemverzeichnisse erklärt.
ls -a ~
Text, Skripte und Konfigurationsdateien
- .txt: Ganz klassisch, Textdateien. Ihr könnt sie mit jedem Texteditor öffnen und bearbeiten.
- .sh: Shell-Skripte. Diese Dateien enthalten Befehle, die ihr sonst einzeln im Terminal eingeben würdet. Ausführen lässt sich ein Skript mit
bash skript.sh, oder ihr gebt ihm mitchmod +x skript.shdas Ausführungsrecht und startet es mit./skript.sh. Die Endung selbst ist dafür nicht nötig, wie der Versuch oben zeigt; entscheidend ist die erste Zeile mit#!. Skripte aus dem Netz lest ihr vor dem Ausführen, sie laufen mit euren Rechten. - .conf und .cfg: Konfigurationsdateien. Programme speichern darin ihre Einstellungen. Systemweite Konfigurationen liegen meist im Ordner
/etc/, benutzereigene oft in den versteckten Punktordnern im Home-Verzeichnis.
Programmiersprachen und Markup-Sprachen
- .py: Python-Skripte. Python ist eine sehr beliebte Programmiersprache, und Dateien mit dieser Endung enthalten Python-Code.
- .html: HTML-Dateien für die Struktur von Webseiten. Ihr könnt sie in jedem Webbrowser öffnen oder mit einem Texteditor bearbeiten.
- .css: CSS-Dateien legen das Aussehen einer Webseite fest, die in HTML geschrieben ist.
- .js: JavaScript-Dateien. JavaScript wird verwendet, um Webseiten interaktiv zu machen.
Archiv- und Komprimierungsformate
- .tar, .tar.gz, .tgz: Archivdateien, die mehrere Dateien zu einer einzigen bündeln.
.tarist das Archivformat,.gzzeigt an, dass das Archiv zusätzlich mit gzip komprimiert wurde, und.tgzist laut suffixes(7) die Kurzform für ein mit gzip komprimiertes Tar-Archiv. - .tar.xz und .tar.zst: dasselbe Prinzip mit den Kompressionsverfahren xz und zstd. Beim Entpacken müsst ihr das Verfahren nicht angeben: Laut Handbuch von GNU tar erkennt tar das Format selbst. Das Komprimierungsprogramm muss aber installiert sein; fehlt etwa
zstd, bricht tar mit einer Fehlermeldung ab. - .zip: Ein weiteres verbreitetes Format, das Dateien komprimiert und archiviert. Unter Linux öffnet ihr es mit
unzip. Alle diese Formate könnt ihr auch im Dateimanager per Rechtsklick entpacken und an einem Ort eurer Wahl speichern.
tar -xf archiv.tar.gz
tar -xf archiv.tar.xz
unzip archiv.zip
Programme, Pakete und Bibliotheken
- .deb: Debian-Pakete, also Installationspakete für Debian und die darauf aufbauenden Distributionen wie Ubuntu und Linux Mint. Am bequemsten installiert ihr eine heruntergeladene Datei mit
sudo apt install ./paketname.deb; apt holt dabei fehlende Abhängigkeiten aus den Paketquellen nach. Der Befehlsudo dpkg -i paketname.debfunktioniert ebenfalls, dpkg(1) bezeichnet sich aber selbst als Werkzeug der mittleren Ebene und verweist auf apt als benutzerfreundlicheres Frontend. - .rpm: Pakete im Format des RPM Package Manager, verwendet unter anderem von Fedora, Red Hat Enterprise Linux und openSUSE. Eine lokale Datei installiert ihr unter Fedora mit
sudo dnf install ./paketname.rpm; laut Dokumentation von dnf5 sorgt der Befehl dafür, dass auch die Abhängigkeiten installiert werden. Das früher oft genannte CentOS Linux gibt es übrigens nicht mehr: CentOS Linux 7 hat am 30. Juni 2024 sein Lebensende erreicht, weitergeführt wird nur CentOS Stream. - .AppImage: ein Programm samt allem, was es braucht, in einer einzigen Datei. Laut AppImage-Dokumentation genügt es, die Datei herunterzuladen, mit
chmod +xausführbar zu machen und zu starten. Eine Installation über die Paketverwaltung findet nicht statt, entsprechend kümmert sich die Paketverwaltung auch nicht um Updates. - .desktop: Starter für das Anwendungsmenü. Laut Desktop Entry Specification beschreiben diese Textdateien, wie ein Programm gestartet wird und wie es in den Menüs erscheint. Systemweit liegen sie unter
/usr/share/applications/. - Ohne Endung: Die meisten Programme unter Linux tragen gar keine. Das Programm
lsliegt schlicht als/usr/bin/lsauf der Platte. Eine Datei mit der Endung .bin kann ein ausführbares Programm sein, muss aber nicht; Gewissheit gibt auch hier erstfile. - .so: Shared Objects, vergleichbar mit den DLL-Dateien unter Windows. Laut suffixes(7) sind das gemeinsam genutzte oder dynamisch ladbare Bibliotheken, die Programme zur Laufzeit einbinden. Oft hängt noch eine Versionsnummer dahinter, die C-Standardbibliothek heisst etwa
libc.so.6. Im Alltag müsst ihr damit kaum hantieren.
Welche Wege es ausserdem gibt, Software zu installieren, und worin sie sich unterscheiden, zeigt der Artikel Programme einfach installieren unter Linux.
Bild-, Audio- und Videodateien
- .jpg, .png, .gif: Verschiedene Bildformate. Ihr könnt sie mit Bildbetrachtern oder Bildbearbeitungsprogrammen öffnen.
- .mp3, .wav: Audiodateien. Abspielbar mit den meisten Mediaplayern.
- .mp4, .avi, .mkv: Videodateiformate. Auch diese könnt ihr mit den meisten Videoplayern abspielen, zum Beispiel mit dem VLC Media Player.
Office-Dokumente
- .odt (OpenDocument Text): Das OpenDocument-Textformat wird hauptsächlich für Textdokumente verwendet und ist das Standardformat von LibreOffice Writer und OpenOffice Writer.
- .ods (OpenDocument Spreadsheet): Für Tabellenkalkulationen, ähnlich wie .xlsx, aber für LibreOffice Calc oder OpenOffice Calc.
- .odp (OpenDocument Presentation): Das Format für Präsentationen, verwendet von LibreOffice Impress oder OpenOffice Impress.
- .docx, .xlsx, .pptx: Microsoft-Office-Formate für Textdokumente, Tabellen und Präsentationen. Ihr könnt sie mit LibreOffice oder OpenOffice unter Linux öffnen und bearbeiten. Wo es beim Austausch mit Microsoft Office hakt, erklärt LibreOffice und Microsoft Office: So vermeidet ihr Formatierungsprobleme.
- .pdf: Portable Document Format. Für Dokumente, die auf jedem Gerät gleich aussehen sollen. Öffnen lässt es sich mit jedem PDF-Betrachter.
Images bzw. Abbilder
- .iso: Direkte Abbilder (Kopien) eines Datenträgers, ursprünglich einer CD, DVD oder Blu-ray. Sie werden häufig verwendet, um Betriebssysteme und Software zu verteilen. Für Linux-Distributionen sind sie besonders nützlich, weil sie eine komplette Systemumgebung enthalten, die auf einen USB-Stick geschrieben und von dort gestartet und installiert werden kann. Wie das geht, zeigt Iso Dateien mit dd flashen auf Linux.
- Prüfsummen und Signaturen: Neben einem ISO liegen auf den Downloadseiten meist Dateien mit Prüfsummen und eine Signatur, oft mit der Endung
.ascoder.sign. Damit prüft ihr, ob der Download vollständig und echt ist. Anleitungen dazu stehen in Sicher downloaden mit Prüfsummenvergleich auf Linux und Sicher downloaden auf Github mit ASC Verifizierung.
Was ihr tun könnt
- Unbekannte Dateien zuerst prüfen:
file dateinamesagt euch, was wirklich drinsteckt, unabhängig von der Endung. - Ausführungsrechte bewusst vergeben: Ein
chmod +xgehört nur an Dateien, deren Herkunft und Inhalt ihr kennt. - Software bevorzugt aus den Paketquellen: Einzelne
.deb- oder.rpm-Dateien installiert ihr mit apt beziehungsweise dnf, damit Abhängigkeiten aufgelöst werden. Einzeln heruntergeladene Pakete und AppImages müsst ihr im Zweifel selbst aktuell halten. - Downloads verifizieren: Bei ISO-Dateien und Paketen von Projektseiten Prüfsumme und Signatur vergleichen, bevor ihr sie verwendet.
- Versteckte Dateien nicht vergessen: Wer sein Home-Verzeichnis sichert oder umzieht, nimmt mit
ls -aauch die Punktdateien in den Blick, denn dort stehen viele Einstellungen.
Fazit: Unter Linux zählt der Inhalt, nicht der Name
Dateiendungen sind unter Linux eine nützliche Konvention: Sie sagen euch auf einen Blick, womit ihr es vermutlich zu tun habt, und Dateimanager wählen danach oft das passende Programm. Entscheidend für das System sind aber der Inhalt und die Rechte. Wer das verinnerlicht, lässt sich von einer harmlos benannten Datei nicht täuschen und weiss mit file und ls -a zwei Werkzeuge an der Hand, die mehr verraten als jeder Dateiname. Oder anders gesagt: Unter Linux darf eine Datei heissen, wie sie will. Glauben müsst ihr es ihr nicht.
Quellen und weiterführende Links
- suffixes(7): Liste der üblichen Dateiendungen
- file(1): Dateityp bestimmen
- execve(2): Voraussetzungen für ausführbare Dateien und Skripte
- ls(1): Optionen -a und -A
- GNU tar: Komprimierte Archive erstellen und lesen
- dpkg(1): Debian-Paketverwaltung
- rpm.org: About RPM
- dnf5: Install Command
- CentOS Project: End dates for CentOS Stream 8 and CentOS Linux 7
- AppImage-Dokumentation: Quickstart
- freedesktop.org: Desktop Entry Specification