Il n'est pas nécessaire que l'extension de fichier corresponde à quelque chose de spécifique, comme vous l'avez correctement découvert.
Sur les systèmes de type Unix, les types de fichiers sont généralement dérivés du contenu du fichier (c'est-à-dire du "nombre magique" ou d'autres structures caractéristiques dans les premiers octets) et non de leur nom. Vous pouvez également omettre complètement l'extension, ce qui est souvent fait pour les exécutables.
Vérifiez la file
commande, elle vous montre les informations qu'elle peut trouver sur un type de fichier à partir de son contenu.
Pour un script exécutable, le système attend un soi-disant "shebang" dans la première ligne, qui ressemble par exemple à
#!/usr/bin/env python3
et indique le programme à exécuter comme interprète avec le fichier de script comme argument. Si vous exécutez un fichier texte sans un tel shebang, il utilisera votre shell par défaut, c'est-à-dire Bash pour essayer de l'interpréter.
Ainsi, sur les systèmes Unix / Linux, les extensions de nom de fichier sont principalement un indice (mais aucune garantie) permettant à l'utilisateur humain de reconnaître rapidement ce à quoi s'attendre qu'un fichier spécifique contienne. C'est aussi une convention qui peut aider, par exemple, à trouver des fichiers plus rapidement.
Notez cependant qu'il existe certaines exceptions, où le nom et l'extension sont importants (par exemple, certains fichiers de configuration système qui doivent suivre une convention de dénomination, ou de nombreux visualiseurs et éditeurs d'images nécessitent également l'extension pour indiquer le type de fichier).
Vous pouvez également jeter un œil à Les extensions de fichier ont-elles une utilité (pour le système d'exploitation)?