No es necesario que la extensión del archivo coincida con nada específico, como descubrió correctamente.
En los sistemas tipo Unix, los tipos de archivo generalmente se derivan del contenido del archivo (es decir, el "número mágico" u otras estructuras características en los primeros bytes) y no de su nombre. También puede omitir por completo la extensión, que a menudo se realiza para ejecutables.
Verifique el file
comando, le muestra la información que puede encontrar sobre un tipo de archivo a partir de su contenido.
Para un script ejecutable, el sistema espera un llamado "shebang" en la primera línea, que se ve, por ejemplo, como
#!/usr/bin/env python3
e indica qué programa ejecutar como intérprete con el archivo de script como argumento. Si ejecuta un archivo de texto sin dicho shebang, usará su shell predeterminado, es decir, Bash para intentar interpretarlo.
Entonces, en los sistemas Unix / Linux, las extensiones de nombre de archivo son principalmente una pista (pero no una garantía) para que el usuario humano reconozca rápidamente qué esperar que contenga un archivo específico. También es una convención que puede ayudar, por ejemplo, a encontrar archivos más rápido.
Sin embargo, tenga en cuenta que existen algunas excepciones en las que el nombre y la extensión son importantes (por ejemplo, algunos archivos de configuración del sistema que deben seguir una convención de nomenclatura, o muchos visores y editores de imágenes también requieren que la extensión indique el tipo de archivo).
También puede echar un vistazo a ¿Las extensiones de archivo tienen algún propósito (para el sistema operativo)?