UNIX / Linux no tiene la misma herencia temprana de DOS / CP / M que Windows. Por lo tanto, las extensiones son generalmente menos significativas para la mayoría de las utilidades y herramientas de UNIX.
Usualmente uso un entorno de línea de comandos solamente. Las extensiones en un entorno de este tipo bajo Linux no son realmente significativas, excepto por conveniencia para el operador o el usuario. (No tengo suficiente experiencia con KDE o GNOME para saber cómo manejan sus administradores de archivos las extensiones).
Pero tal conveniencia suele ser importante. Si config.ini
realmente está en formato ".ini" estándar de Microsoft, dejaría que la extensión permanezca. Los archivos de texto antiguos generalmente no tienen extensión en Linux, pero esto no es universal para todos los archivos de configuración de programas. El programador generalmente decide eso.
Creo que ".txt" es útil en Linux si desea enfatizar que NO es un archivo de configuración u otro documento legible por máquina. Sin embargo, en las distribuciones de origen, la convención es nombrar dichos archivos con mayúsculas sin una extensión (es decir, README, INSTALL, COPYING, etc.)
Hay algunos estándares y convenciones, pero nada te impide nombrar lo que quieras, a menos que estés compartiendo cosas con otros.
En Windows, nombrar un archivo .exe
indica al shell (generalmente explorer.exe
) que es un archivo ejecutable. UNIX construye este conocimiento en los permisos del sistema de archivos. Si se establecen los x
bits adecuados (ver man chmod
), los shells y las funciones del kernel lo reconocen como ejecutable (creo). Más allá de esto, a Linux no le importa, a la mayoría de los shells no le importará, y la mayoría de los programas buscan en el archivo para encontrar su "tipo".
Por supuesto, existe el comando agradable file
que puede analizar el archivo y decirle qué es con cierto grado de certeza. Creo que si no puede hacer coincidir los datos en el archivo con ningún tipo conocido, y si contiene solo caracteres ASCII / Unicode imprimibles, entonces se supone que es un archivo de texto.
@Bruce Ediger a continuación es absolutamente correcto. No hay nada en el nivel del kernel o del sistema de archivos, es decir, Linux en sí mismo, que imponga o cuide que el contenido de un archivo deba coincidir con su nombre o con el programa que se supone que debe comprenderlo. Esto no significa que no sea posible crear una utilidad de shell o lanzador para hacer cosas basadas en el nombre del archivo.