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.
A diferencia de Windows, en los sistemas UNIX el tipo de archivo no está determinado por la extensión. La extensión del archivo es y fue simplemente un indicador visual para los humanos. Puede nombrar un archivo JPEG foo.c y abrirlo en Gimp. Otro contraste de Windows es que en los sistemas UNIX debe usar el nombre de archivo completo, mientras que Windows a menudo se encargará de usted (por ejemplo, ejecutando solo
explorer
vs.explorer.exe
). En UNIXfoo.sh
debe llamarse comofoo.sh
, no simplementefoo
.Por convención, las personas tienden a usar un conjunto común de extensiones. Esta práctica, aunque innecesaria, es probablemente beneficiosa para la humanidad en general.
fuente
This practice…is probably beneficial for humanity at large
file
comando está mirando. (#!
es el número mágico para guiones sh, por ejemplo)En general, me ha resultado muy útil mantener una convención de nomenclatura estricta y descriptiva. No necesita la extensión en Unix, pero la conservaría por dos razones:
1) Si ese archivo será leído alguna vez por una máquina Windows, será más fácil abrirlo que tratar de encontrar "abrir con ...".
2) Extensiones lo ayuda a usted, el usuario, a descubrir qué está haciendo el archivo. En nuestro laboratorio: .txt = archivo de texto .sgi = binario compilado irix .linux = binario compilado linux
Si tiene que usar máquinas Unix más antiguas (todavía usamos IRIX), tenga en cuenta que el retorno de carro es diferente en las máquinas * nix, y los programas podrían no apreciarlo si intenta abrir un archivo con retornos de carro de Windows.
fuente
Es posible que desee leer una introducción al sistema de archivos Unix .
fuente
Hay varias buenas respuestas. Me gustaría responder una parte de la pregunta original: "Cualquier recurso general sobre cómo Linux maneja las extensiones de archivo sería útil".
Es posible registrar extensiones, de modo que Linux siempre abra ciertas extensiones con ciertos programas. Esta instalación se llama binfmt .
fuente
.txt se puede abrir a través de diferentes aplicaciones. pero lo importante es que se usa para clasificar el archivo en cierto tipo. Puede ver si guardamos el mismo archivo usando .html, el archivo intenta abrirse en Internet Explorer. las aplicaciones se realizan en consecuencia para admitir dichos tipos de archivos. Si usa .html arriba, el compilador intenta encontrar los atributos html y muestra el resultado correspondiente. Lo mismo con las otras extensiones. El archivo .ini se puede leer como texto, pero la extensión lo clasifica como archivo de configuración y, por lo tanto, el compilador lo trata como un archivo de configuración, no como un archivo de texto ordinario, ya que el archivo de texto es solo un conjunto de registros y no tiene una función específica. por lo tanto, no querrá cambiar la extensión de ini a texto
fuente