UNIX / Linux non ha la stessa eredità DOS / CP / M iniziale di Windows. Quindi le estensioni sono generalmente meno significative per la maggior parte delle utility e degli strumenti UNIX.
Di solito uso un ambiente solo da riga di comando. Le estensioni in un tale ambiente sotto Linux non sono davvero significative se non per comodità dell'operatore o dell'utente. (Non ho abbastanza esperienza con KDE o GNOME per sapere come i loro file manager gestiscono le estensioni.)
Ma tale praticità è di solito importante. Se config.iniè davvero in formato ".ini" standard Microsoft, lascerei stare l'estensione. I normali file di testo vecchi di solito non hanno estensione in Linux, ma questo non è universale per tutti i file di configurazione dei programmi. Il programmatore di solito lo decide.
Penso che ".txt" sia utile sotto Linux se vuoi sottolineare che NON è un file di configurazione o un altro documento leggibile dalla macchina. Tuttavia, nelle distribuzioni dei sorgenti, la convenzione è di nominare tali file in maiuscolo senza estensione (ovvero README, INSTALL, COPYING, ecc.)
Ci sono alcuni standard e convenzioni, ma nulla ti impedisce di nominare qualsiasi cosa tu voglia, a meno che tu non stia condividendo le cose con gli altri.
In Windows, la denominazione di un file .exeindica alla shell (di solito explorer.exe) che si tratta di un file eseguibile. UNIX inserisce questa conoscenza nelle autorizzazioni del file system. Se vengono impostati i xbit corretti (vedi man chmod), viene riconosciuto come eseguibile da shell e funzioni del kernel (credo). Oltre a ciò, a Linux non importa, alla maggior parte delle shell non importa, e la maggior parte dei programmi cerca nel file per trovare il "tipo".
Certo, c'è il bel comando fileche può analizzare il file e dirti di cosa si tratta con un certo grado di certezza. Credo che se non può corrispondere ai dati nel file con alcun tipo noto e se contiene solo caratteri ASCII / Unicode stampabili, presuppone che sia un file di testo.
@Bruce Ediger di seguito è assolutamente corretto. Non c'è nulla a livello di kernel o filesystem, cioè Linux stesso, che impone o si preoccupi che il contenuto di un file debba corrispondere al suo nome, o al programma che dovrebbe capirlo. Ciò non significa che non sia possibile creare un'utilità shell o launcher per fare cose in base al nome del file.