UNIX / Linux hat nicht dasselbe frühe DOS / CP / M-Erbe wie Windows. Daher sind Erweiterungen für die meisten UNIX-Dienstprogramme und -Tools im Allgemeinen weniger wichtig.
Normalerweise verwende ich nur eine Befehlszeilenumgebung. Erweiterungen in einer solchen Umgebung unter Linux sind nur aus Bequemlichkeitsgründen für den Bediener oder Benutzer von Bedeutung. (Ich habe nicht genug Erfahrung mit KDE oder GNOME, um zu wissen, wie ihre Dateimanager mit Erweiterungen umgehen.)
Aber solche Bequemlichkeit ist normalerweise wichtig. Wenn config.ini
es wirklich im Microsoft-Standard ".ini" -Format ist, würde ich die Erweiterung stehen lassen. Einfache alte Textdateien haben in Linux normalerweise keine Erweiterung, dies ist jedoch nicht für alle Programmkonfigurationsdateien universell. Der Programmierer kann das normalerweise entscheiden.
Ich denke, ".txt" ist unter Linux nützlich, wenn Sie betonen möchten, dass es sich NICHT um eine Konfigurationsdatei oder ein anderes maschinenlesbares Dokument handelt. In Quelldistributionen ist es jedoch üblich, solche Dateien alle Großbuchstaben ohne Erweiterung zu benennen (dh README, INSTALL, COPYING usw.).
Es gibt einige Standards und Konventionen, aber nichts hindert Sie daran, irgendetwas zu benennen, was immer Sie wollen, es sei denn, Sie teilen Dinge mit anderen.
Unter Windows bedeutet die Benennung einer Datei .exe
für die Shell (normalerweise explorer.exe
), dass es sich um eine ausführbare Datei handelt. UNIX baut dieses Wissen in die Berechtigungen des Dateisystems ein. Wenn die richtigen x
Bits (siehe man chmod
) gesetzt sind, wird dies von Shells und Kernelfunktionen als ausführbar erkannt (glaube ich). Darüber hinaus kümmert es Linux nicht, die meisten Shells kümmern sich nicht darum, und die meisten Programme sehen in der Datei nach, ob es sich um einen "Typ" handelt.
Natürlich gibt es den netten Befehl, file
der die Datei analysieren und Ihnen mit Sicherheit sagen kann, was sie ist. Ich glaube, wenn es die Daten in der Datei nicht mit einem bekannten Typ abgleichen kann und wenn es nur druckbare ASCII / Unicode-Zeichen enthält, dann nimmt es an, dass es eine Textdatei ist.
@ Bruce Ediger unten ist absolut richtig. Es gibt nichts auf Kernel- oder Dateisystemebene, dh Linux selbst, das erzwingt oder dafür sorgt, dass der Inhalt einer Datei mit ihrem Namen oder dem Programm, das sie verstehen soll, übereinstimmt. Dies bedeutet nicht, dass es nicht möglich ist, eine Shell oder ein Startprogramm zu erstellen, um Dinge basierend auf dem Dateinamen auszuführen.
Im Gegensatz zu Windows wird in UNIX-Systemen der Dateityp nicht durch die Erweiterung bestimmt. Die Dateierweiterung ist und war lediglich ein visueller Indikator für den Menschen. Sie können JPEG foo.c benennen und in Gimp öffnen. Ein weiterer Unterschied zu Windows besteht darin, dass Sie auf UNIX-Systemen den gesamten Dateinamen verwenden müssen, während Windows diesen häufig für Sie erledigt (z. B. "Nur
explorer
gegen"explorer.exe
). Unter UNIXfoo.sh
muss dafoo.sh
nicht einfach aufgerufen werdenfoo
.Per Konvention neigen Menschen dazu, einen gemeinsamen Satz von Erweiterungen zu verwenden. Diese Praxis ist zwar unnötig, aber wahrscheinlich für die gesamte Menschheit von Vorteil.
quelle
This practice…is probably beneficial for humanity at large
file
Befehl abzielt. (#!
ist die magische Zahl für sh-Skripte zum Beispiel)Im Allgemeinen habe ich festgestellt, dass die Einhaltung einer strengen, beschreibenden Namenskonvention sehr hilfreich ist. Sie brauchen die Erweiterung nicht in Unix, aber ich würde sie aus zwei Gründen behalten:
1) Wenn diese Datei jemals von einem Windows-Computer gelesen wird, ist das Öffnen einfacher als der Versuch, "Öffnen mit ..." zu finden.
2) Extensions hilft Ihnen als Benutzer dabei, herauszufinden, was die Datei tut. In unserem Labor: .txt = Textdatei .sgi = Irix kompilierte Binärdatei .linux = Linux kompilierte Binärdatei
Wenn Sie ältere Unix-Computer verwenden müssen (wir verwenden immer noch IRIX), beachten Sie, dass der Wagenrücklauf auf * nix-Computern unterschiedlich ist und Programme es möglicherweise nicht begrüßen, wenn Sie versuchen, eine Datei mit Windows-Wagenrückläufen zu öffnen.
quelle
Möglicherweise möchten Sie eine Einführung in das Unix-Dateisystem lesen .
quelle
Es gibt mehrere gute Antworten. Ich möchte einen Teil der ursprünglichen Frage weiter beantworten: "Alle allgemeinen Ressourcen zum Umgang mit Dateierweiterungen unter Linux sind hilfreich."
Es ist möglich, Erweiterungen zu registrieren, so dass Linux immer bestimmte Erweiterungen mit bestimmten Programmen öffnet. Diese Einrichtung heißt binfmt .
quelle
.txt kann über verschiedene Anwendungen geöffnet werden. Wichtig ist jedoch, dass die Datei in einem bestimmten Typ klassifiziert wird. Sie können sehen, ob wir dieselbe Datei mit .html speichern, die die Datei im Internet Explorer zu öffnen versucht. Die Anwendungen werden entsprechend erstellt, um solche Dateitypen zu unterstützen. Wenn Sie oben .html verwenden, versucht der Compiler, die darin enthaltenen HTML-Attribute zu finden, und zeigt das Ergebnis entsprechend an. Gleiches gilt für die anderen Erweiterungen. INI-Datei kann als Text gelesen werden, aber die Erweiterung klassifiziert sie als Konfigurationsdatei und daher behandelt der Compiler sie als Konfigurationsdatei und nicht als gewöhnliche Textdatei, da die Textdatei nur ein Datensatz ist und keine spezifische Funktion wie die von hat. In diesem Fall möchten Sie die Erweiterung von ini nicht in text ändern
quelle