UNIX / Linux n'a pas le même héritage DOS / CP / M ancien que Windows. Les extensions sont donc généralement moins importantes pour la plupart des utilitaires et outils UNIX.
J'utilise généralement un environnement en ligne de commande uniquement. Les extensions dans un tel environnement sous Linux ne sont vraiment significatives que pour la commodité de l'opérateur ou de l'utilisateur. (Je n'ai pas assez d'expérience avec KDE ou GNOME pour savoir comment leurs gestionnaires de fichiers traitent les extensions.)
Mais une telle commodité est généralement importante. Si config.ini
est vraiment au format ".ini" standard de Microsoft, je laisserais l'extension se tenir. Les anciens fichiers texte simples ne portent généralement pas d'extension sous Linux, mais ce n'est pas universel pour tous les fichiers de configuration des programmes. Le programmeur décide généralement de cela.
Je pense que ".txt" est utile sous Linux si vous voulez souligner qu'il ne s'agit PAS d'un fichier de configuration ou d'un autre document lisible par machine. Cependant, dans les distributions sources, la convention est de nommer ces fichiers tous les majuscules sans extension (c'est-à-dire README, INSTALL, COPYING, etc.)
Il existe certaines normes et conventions, mais rien ne vous empêche de nommer quoi que ce soit, sauf si vous partagez des choses avec d'autres.
Sous Windows, nommer un fichier .exe
indique au shell (généralement explorer.exe
) qu'il s'agit d'un fichier exécutable. UNIX intègre ces connaissances dans les autorisations du système de fichiers. Si les bons x
bits (voir man chmod
) sont définis, il est reconnu comme exécutable par les shells et les fonctions du noyau (je crois). Au-delà de cela, Linux s'en fiche, la plupart des shells s'en moquent, et la plupart des programmes regardent dans le fichier pour trouver son "type".
Bien sûr, il y a la belle commande file
qui peut analyser le fichier et vous dire avec certitude ce que c'est. Je crois que s'il ne peut pas faire correspondre les données du fichier avec n'importe quel type connu, et s'il ne contient que des caractères ASCII / Unicode imprimables, il suppose qu'il s'agit d'un fichier texte.
@Bruce Ediger ci-dessous est absolument correct. Il n'y a rien au niveau du noyau ou du système de fichiers, c'est-à-dire Linux lui-même, imposant ou prenant en charge que le contenu d'un fichier doit correspondre à son nom, ou au programme qui est censé le comprendre. Cela ne signifie pas qu'il n'est pas possible de créer un utilitaire shell ou lanceur pour faire des choses en fonction du nom de fichier.
Contrairement à Windows, dans les systèmes UNIX, le type de fichier n'est pas déterminé par l'extension. L'extension de fichier est et était simplement un indicateur visuel pour les humains. Vous pouvez nommer un fichier foo.c JPEG et l'ouvrir dans Gimp. Un autre contraste avec Windows est que sur les systèmes UNIX, vous devez utiliser l'intégralité du nom de fichier, tandis que Windows s'en occupera souvent pour vous (par exemple, en exécutant simplement
explorer
vs.explorer.exe
). Sous UNIXfoo.sh
doit être appelé commefoo.sh
, pas simplementfoo
.Par convention, les gens ont tendance à utiliser un ensemble d'extensions commun. Cette pratique, bien qu'inutile, est probablement bénéfique pour l'humanité dans son ensemble.
la source
This practice…is probably beneficial for humanity at large
file
commande regarde. (#!
est le nombre magique pour les scripts sh, par exemple)En général, j'ai trouvé très utile de conserver une convention de dénomination stricte et descriptive. Vous n'avez pas besoin de l'extension sous Unix, mais je la garderais pour deux raisons:
1) Si ce fichier est lu par une machine Windows, il sera plus facile de l'ouvrir que d'essayer de trouver "ouvrir avec ...".
2) Les extensions vous aident, l'utilisateur, à comprendre ce que fait le fichier. Dans notre laboratoire: .txt = fichier texte .sgi = binaire compilé irix .linux = binaire compilé linux
Si vous devez utiliser des machines Unix plus anciennes (nous utilisons toujours IRIX), gardez à l'esprit que le retour chariot est différent dans les machines * nix, et les programmes pourraient ne pas apprécier si vous essayez d'ouvrir un fichier avec des retours chariot Windows.
la source
Vous voudrez peut-être lire une introduction au système de fichiers Unix .
la source
Il y a plusieurs bonnes réponses. J'aimerais répondre davantage à une partie de la question d'origine: "Toute ressource générale sur la façon dont Linux gère les extensions de fichier serait utile."
Il est possible d'enregistrer des extensions, afin que Linux ouvre toujours certaines extensions avec certains programmes. Cette fonction est appelée binfmt .
la source
.txt peut être ouvert via différentes applications. mais l'important est qu'il est utilisé pour classer le fichier dans un certain type. Vous pouvez voir si nous enregistrons le même fichier en utilisant .html, le fichier tente d'ouvrir dans Internet Explorer. les applications sont faites en conséquence pour prendre en charge ces types de fichiers. Si vous utilisez .html ci-dessus, le compilateur essaie de trouver les attributs html et affiche le résultat en conséquence. idem avec les autres extensions. Le fichier .ini peut être lu comme du texte, mais l'extension le classe comme fichier de configuration et, par conséquent, le compilateur le traite comme un fichier de configuration et non comme un fichier texte ordinaire car le fichier texte n'est qu'un ensemble d'enregistrements et n'a pas de fonction spécifique comme celle de. ini. d'où vous ne voudriez pas changer l'extension de ini en texte
la source