Non è necessario che l'estensione del file corrisponda a qualcosa di specifico, come hai scoperto correttamente.
Su sistemi simili a Unix, i tipi di file sono generalmente derivati dal contenuto del file (cioè il "numero magico" o altre strutture caratteristiche nei primi byte) e non dal loro nome. Potresti anche omettere completamente l'estensione, che viene spesso eseguita per gli eseguibili.
Controlla il file
comando, ti mostra le informazioni che può trovare su un tipo di file dal suo contenuto.
Per uno script eseguibile, il sistema prevede un cosiddetto "shebang" nella prima riga, che ad esempio assomiglia
#!/usr/bin/env python3
e indica quale programma eseguire come interprete con il file di script come argomento. Se esegui un file di testo senza tale shebang, utilizzerà la shell predefinita, ovvero Bash per provare a interpretarlo.
Quindi sui sistemi Unix / Linux, le estensioni di file sono per lo più un suggerimento (ma nessuna garanzia) per l'utente umano di riconoscere rapidamente cosa aspettarsi che contenga un file specifico. È anche una convenzione che può aiutare, ad esempio, a trovare i file più velocemente.
Si noti tuttavia che esistono alcune eccezioni, in cui il nome e l'estensione sono importanti (ad esempio alcuni file di configurazione del sistema che devono seguire una convenzione di denominazione, oppure molti visualizzatori e editor di immagini richiedono anche l'estensione per indicare il tipo di file).
Puoi anche dare un'occhiata a Le estensioni di file hanno uno scopo (per il sistema operativo)?