Warum haben tar- und gzip-Dateien normalerweise eine Dateierweiterung?

8

Dateierweiterungen sind nicht erforderlich , auf Unix - Varianten, immer noch jeden geteert, gzip oder bzipped Datei ich Begegnung hat eine Dateierweiterung wie .tar, .tar.gzoder .tgz.

Gibt es dafür einen besonderen Grund oder ist das nur Konvention?

Verrückter Wissenschaftler
quelle

Antworten:

17

Ursprünglich waren auf Unix-Systemen die Erweiterungen von Dateinamen eine Frage der Konvention. Sie erlaubten einem Menschen, das richtige Programm zum Öffnen einer Datei auszuwählen. Die moderne Konvention sieht in den meisten Fällen Erweiterungen vor; häufige Ausnahmen sind:

  • Nur reguläre Dateien haben eine Erweiterung, keine Verzeichnisse oder Gerätenamen. Die bloße Tatsache, ein Verzeichnis oder Gerät zu sein, reicht aus, um den Dateityp anzugeben.
  • Ausführbare Dateien, die direkt aufgerufen werden sollen, haben keine Erweiterung. Die bloße Tatsache, ausführbar zu sein, reicht für den Benutzer aus, und der Kernel kümmert sich nicht um Dateinamen.
  • Dateien mit einem Wort in allen Kappen beginnen , sind häufig Textdateien, zum Beispiel README, TODO. Manchmal gibt es ein zusätzliches Teil, der eine Unterkategorie angeben, zum Beispiel INSTALL.linux, INSTALL.solaris.
  • Dateien , deren Name mit einem Punkt sind Konfigurations- oder Statusdateien einer bestimmten Anwendung, und oft keine Erweiterung haben, zum Beispiel .bashrc, .profile, .emacs.
  • Es gibt einige traditionelle Fälle, z Makefile.

(Dies sind häufige Fälle, keine festen Regeln.)

Die meisten binären Dateiformate enthalten auch eine Art Header, der die Eigenschaften der Datei beschreibt und normalerweise die Identifizierung des Dateiformats durch magische Zahlen ermöglicht . Der fileBefehl überprüft diese Informationen und zeigt Ihnen seine Vermutungen.

Manchmal liefert die Dateierweiterung mehr Informationen als das Dateiformat, manchmal ist es umgekehrt. Beispielsweise bestehen viele Dateiformate aus einem Zip- Archiv: Java-Bibliotheken ( .jar), OpenOffice-Dokumente ( .odt,…), Microsoft Office-Dokumente ( .docx,…) usw. Ein weiteres Beispiel sind Quellcodedateien, bei denen die Erweiterung die Programmiersprache angibt, die dies kann Es ist für einen Computer schwierig, den Inhalt der Datei automatisch zu erraten. Umgekehrt sind einige Erweiterungen sehr vieldeutig, z. B. .owerden sie für kompilierte Codedateien ( Objektdateien ) verwendet. Die Überprüfung des Dateiinhalts zeigt jedoch normalerweise leicht, für welchen Maschinentyp und welches Betriebssystem die Objektdatei bestimmt ist.

Ein Vorteil der Erweiterung ist, dass sie viel schneller erkannt werden kann als die Datei zu öffnen und nach magischen Sequenzen zu suchen. Zum Beispiel basiert die Vervollständigung von Dateinamen in Shells fast immer auf dem Namen (hauptsächlich der Erweiterung), da das Lesen jeder Datei in einem großen Verzeichnis lange dauern kann, während das Lesen der Dateinamen für eine TabPresse schnell genug ist .

Manchmal können Sie durch Ändern der Dateierweiterung festlegen, wie eine Datei interpretiert werden soll, wenn zwei Dateiformate fast, aber nicht vollständig identisch sind. Zum Beispiel kann ein Web - Server behandeln könnte .shtmlund .htmlanders, das ehemalige beziehungsweise werden serverseitige Vorverarbeitung diente das letztere , wie sie ist.

Bei gzip-Archiven gzipwerden Dateien, deren Name auf endet .gz, .tgzund einige andere Erweiterungen nicht erneut komprimiert . Auf diese Weise können Sie gzip *jede Datei in einem Verzeichnis komprimieren, und bereits komprimierte Dateien werden nicht geändert.

Gilles 'SO - hör auf böse zu sein'
quelle
1
Verzeichnisse, die Daemon-Skripte enthalten, erhalten manchmal auch die Erweiterung .d, z. B. init.d, cron.d usw.
Lie Ryan
8

Sie benötigen möglicherweise keine Erweiterung, erleichtern jedoch die Identifizierung in der Ausgabe von ls.

Entwicklungswahnsinn
quelle
2
Genau. Normalerweise gibt es keine "Bitte meine Hand halten" -Flagge tar, daher müssen Sie angeben, welche Art von Archiv Sie haben.
Kevin Cantu
3

Dateierweiterungen sind in erster Linie eine Konvention für die Menschen, die das System verwenden. Es gibt Tools, die die Dateinamenerweiterung verwenden, um Dinge zu tun. Zum Beispiel zeigt mir Nautilus ein anderes Symbol basierend auf der Dateierweiterung.

Wenn ich Ihnen eine Datei mit dem Namen gegeben habe file, wissen Sie möglicherweise nicht, wie Sie diese Datei öffnen sollen. Wenn ich Ihnen jedoch eine Datei mit dem Namen geben würde file.tar.gzoder file.tarSie es schnell und einfach herausfinden könnten.

Stefan Lasiewski
quelle
5
Nautilus verwendet mehr als nur die Dateierweiterung, um den Dateityp zu bestimmen. Eine tar.gz-Datei ohne die Erweiterung erhält normalerweise immer noch ein ausgefallenes Symbol.
Steven D