stringtranslate.com

Extensión de nombre de archivo

Una extensión de nombre de archivo , extensión de nombre de archivo o extensión de archivo es un sufijo del nombre de un archivo de computadora (por ejemplo, .txt, .docx, .md). La extensión indica una característica del contenido del archivo o su uso previsto. Una extensión de nombre de archivo generalmente está delimitada del resto del nombre de archivo con un punto (punto), pero en algunos sistemas [1] está separada con espacios.

Algunos sistemas de archivos implementan extensiones de nombre de archivo como una característica del propio sistema de archivos y pueden limitar la longitud y el formato de la extensión, mientras que otros tratan las extensiones de nombre de archivo como parte del nombre de archivo sin distinción especial.

Soporte para sistemas operativos y sistemas de archivos

El sistema de archivos Multics almacena el nombre del archivo como una sola cadena, no dividida en nombre base y componentes de extensión, lo que permite el carácter "." ser solo otro carácter permitido en los nombres de archivos. Permite nombres de archivos de longitud variable, lo que permite más de un punto y, por tanto, múltiples sufijos, así como ningún punto y, por tanto, ningún sufijo. Algunos componentes de Multics y las aplicaciones que se ejecutan en él usan sufijos para indicar tipos de archivos, pero no todos los archivos necesitan tener un sufijo; por ejemplo, los archivos ejecutables y de texto ordinarios generalmente no tienen sufijos en sus nombres.

Los sistemas de archivos para sistemas operativos tipo UNIX también almacenan el nombre del archivo como una sola cadena, con "." como un carácter más en el nombre del archivo. A veces se dice que un archivo con más de un sufijo tiene más de una extensión, aunque la terminología varía a este respecto, y la mayoría de los autores definen la extensión de una manera que no permite más de una en el mismo nombre de archivo. [ cita necesaria ] Más de una extensión generalmente representa transformaciones anidadas, como files.tar.gz( .tarindica que el archivo es un archivo tar de uno o más archivos, y indica .gzque el archivo tar está comprimido con gzip ). Los programas que transforman o crean archivos pueden agregar la extensión apropiada a los nombres inferidos a partir de los nombres de los archivos de entrada (a menos que se les dé explícitamente un nombre de archivo de salida), pero los programas que leen archivos generalmente ignoran la información; está destinado principalmente al usuario humano. Es más común, especialmente en archivos binarios, que el archivo contenga metadatos internos o externos que describan su contenido. Este modelo generalmente requiere que se proporcione el nombre de archivo completo en los comandos, mientras que el enfoque de metadatos a menudo permite omitir la extensión.

En DOS y Windows de 16 bits , los nombres de archivos tienen un máximo de 8 caracteres, un punto y una extensión de hasta tres letras. El sistema de archivos FAT para DOS y Windows almacena los nombres de los archivos como un nombre de 8 caracteres y una extensión de tres caracteres. El carácter de punto no se almacena.

El sistema de archivos de alto rendimiento (HPFS), utilizado en OS/2 de Microsoft e IBM , almacena el nombre del archivo como una sola cadena, con el "." carácter como un carácter más en el nombre del archivo. La convención de usar sufijos continuó, aunque HPFS admite atributos extendidos para archivos, lo que permite que el tipo de archivo se almacene en el archivo como un atributo extendido.

El sistema de archivos nativo de Microsoft Windows NT , NTFS , y el posterior ReFS , también almacenan el nombre del archivo como una sola cadena; Nuevamente, continuó la convención de usar sufijos para simular extensiones, por compatibilidad con las versiones existentes de Windows. En Windows NT 3.5 apareció una variante del sistema de archivos FAT, llamada VFAT ; admite nombres de archivos más largos, y el nombre del archivo se trata como una sola cadena.

Windows 95 , con VFAT, introdujo soporte para nombres de archivos largos y eliminó la división de nombre/extensión 8.3 en nombres de archivos de Windows que no son NT.

El Mac OS clásico eliminó por completo los metadatos de extensión basados ​​en nombres de archivos; utilizó, en cambio, un código de tipo de archivo distinto para identificar el formato del archivo. Además, se especificó un código de creador para determinar qué aplicación se iniciaría cuando se hiciera doble clic en el icono del archivo . [2] macOS , sin embargo, utiliza sufijos de nombre de archivo como consecuencia de derivar del sistema operativo NeXTSTEP similar a UNIX , además de utilizar códigos de tipo y creador.

En los sistemas Commodore, los archivos sólo pueden tener cuatro extensiones: PRG, SEQ, USR, REL. Sin embargo, se utilizan para separar los tipos de datos utilizados por un programa y son irrelevantes para identificar su contenido.

Con la llegada de las interfaces gráficas de usuario , surgió la cuestión de la gestión de archivos y el comportamiento de la interfaz. Microsoft Windows permitía asociar varias aplicaciones a una extensión determinada y había diferentes acciones disponibles para seleccionar la aplicación requerida, como un menú contextual que ofrecía la opción de ver, editar o imprimir el archivo. Se seguía suponiendo que cualquier extensión representaba un único tipo de archivo; Había una correlación inequívoca entre extensión e icono.

Cuando llegó la era de Internet , quienes usaban sistemas Windows que todavía estaban restringidos a formatos de nombre de archivo 8.3 tenían que crear páginas web con nombres terminados en .HTM, mientras que quienes usaban computadoras Macintosh o UNIX podían usar la .htmlextensión de nombre de archivo recomendada. Esto también se convirtió en un problema para los programadores que experimentaban con el lenguaje de programación Java , ya que requiere el sufijo de cuatro letras .javapara los archivos de código fuente y el sufijo de cinco letras .classpara los archivos de salida de código objeto del compilador Java . [3]

Tipo de contenido

Las extensiones de nombre de archivo pueden considerarse un tipo de metadatos . [4] Se utilizan comúnmente para dar a entender información sobre la forma en que se pueden almacenar los datos en el archivo. La definición exacta, que proporciona los criterios para decidir qué parte del nombre del archivo tiene su extensión, pertenece a las reglas del sistema de archivos específico utilizado; normalmente la extensión es la subcadena que sigue a la última aparición, si la hay, del carácter de punto ( ejemplo: txt es la extensión del nombre del archivo readme.txty htmlla extensión de mysite.index.html). En los sistemas de archivos de algunos sistemas mainframe como CMS en VM , VMS y de sistemas de PC como CP/M y sistemas derivados como MS-DOS , la extensión es un espacio de nombres separado del nombre del archivo. En DOS y Windows de Microsoft , extensiones como EXEo indican que COMun BATarchivo es un programa ejecutable . En OS/360 y sus sucesores , la parte del nombre del conjunto de datos que sigue al último punto, denominada calificador de bajo nivel, es tratada como una extensión por algún software, por ejemplo, TSO EDIT, pero no tiene ningún significado especial para el sistema operativo en sí; Lo mismo se aplica a los archivos Unix en MVS.

La extensión del nombre de archivo se usó originalmente para determinar el tipo genérico del archivo. [ cita necesaria ] La necesidad de condensar el tipo de un archivo en tres caracteres con frecuencia llevaba a extensiones abreviadas. Los ejemplos incluyen el uso .GFXde archivos gráficos, texto sin formato.TXT y música . Sin embargo, debido a que se han creado muchos programas de software diferentes que manejan estos tipos de datos (y otros) de diversas maneras, las extensiones de nombre de archivo comenzaron a asociarse estrechamente con ciertos productos, incluso versiones específicas de productos. Por ejemplo, los primeros archivos de WordStar usaban o , donde n era el número de versión del programa. Además, se desarrollaron usos contradictorios de algunas extensiones de nombres de archivos. Un ejemplo es , que se utiliza tanto para paquetes de RPM Package Manager como para archivos de RealPlayer Media. [5] Otros son , compartidos por fuentes DESQview , libros de contabilidad financieros Quicken e imágenes QuickTime ; [6] , compartido por scripts GrabIt e imágenes ROM de Game Boy Advance ; [7] , utilizado para SmallBasic y Scratch ; y , siendo utilizado para Dynamix Three Space y DTS ..MUS.WS.WSn.rpm.qif .gba .sb.dts

Comparado con el tipo MIME

En muchos protocolos de Internet , como HTTP y correo electrónico MIME , el tipo de flujo de bits se indica como el tipo de medio , o tipo MIME, del flujo, en lugar de una extensión de nombre de archivo. Esto se proporciona en una línea de texto que precede a la secuencia, como Tipo de contenido: texto/plain .

No existe una asignación estándar entre las extensiones de los nombres de archivos y los tipos de medios, lo que genera posibles discrepancias en la interpretación entre los autores, los servidores web y el software del cliente al transferir archivos a través de Internet. Por ejemplo, un autor de contenido puede especificar la extensión svgz para un archivo de gráficos vectoriales escalables comprimidos , pero un servidor web que no reconoce esta extensión puede no enviar el tipo de contenido adecuado application/svg+xml y su encabezado de compresión requerido, lo que deja a los navegadores web incapaz de interpretar y mostrar correctamente la imagen.

BeOS , cuyo sistema de archivos BFS admite atributos extendidos, etiquetaría un archivo con su tipo de medio como atributo extendido. Algunos entornos de escritorio , como KDE y GNOME , asocian un tipo de medio con un archivo examinando tanto el sufijo del nombre del archivo como el contenido del archivo, al estilo del comando de archivo , como una heurística . Eligen la aplicación que se iniciará cuando se abre un archivo según ese tipo de medio, lo que reduce la dependencia de las extensiones de nombre de archivo. macOS utiliza extensiones de nombre de archivo y tipos de medios, así como códigos de tipo de archivo , para seleccionar un Identificador de tipo uniforme mediante el cual identificar el tipo de archivo internamente.

Programas ejecutables

El uso de una extensión de nombre de archivo en el nombre de un comando aparece ocasionalmente, generalmente como un efecto secundario de que el comando se haya implementado como un script, por ejemplo, para el shell Bourne o para Python , y el nombre del intérprete se agrega al nombre del comando, un práctica común en sistemas que dependen de asociaciones entre la extensión del nombre de archivo y el intérprete, pero muy desaprobada [8] en sistemas tipo Unix , como Linux , Oracle Solaris , sistemas basados ​​en BSD y macOS de Apple , donde el intérprete normalmente se especifica como un encabezado en el script (" shebang ").

En los sistemas basados ​​en asociaciones, la extensión del nombre de archivo generalmente se asigna a una única selección de intérprete para esa extensión en todo el sistema (como ".py", que significa usar Python), y el comando en sí se puede ejecutar desde la línea de comandos incluso si la extensión se omite (suponiendo que se realice la configuración adecuada). Si se cambia el idioma de implementación, la extensión del nombre del comando también cambia y el sistema operativo proporciona una API consistente al permitir que se use la misma versión sin extensión del comando en ambos casos. Este método adolece un poco de la naturaleza esencialmente global del mapeo de asociaciones, así como de la evitación incompleta de las extensiones por parte de los desarrolladores al llamar a programas, y de que los desarrolladores no pueden forzar esa evitación. Windows es el único que sigue utilizando este mecanismo de forma generalizada.

En sistemas con directivas de intérprete , incluidas prácticamente todas las versiones de Unix, las extensiones de nombre de comando no tienen un significado especial y, por práctica estándar, no se utilizan, ya que el método principal para configurar intérpretes para scripts es iniciarlos con una sola línea que especifique el intérprete a uso (que podría verse como una bifurcación de recursos degenerada ). En estos entornos, incluir la extensión en el nombre de un comando expone innecesariamente un detalle de implementación que pone en riesgo futuro todas las referencias a los comandos de otros programas si la implementación cambia. Por ejemplo, sería perfectamente normal que un script de shell se reimplemente en Python o Ruby, y más tarde en C o C++, todo lo cual cambiaría el nombre del comando si se usaran extensiones. Sin extensiones, un programa siempre tiene el mismo nombre sin extensión, solo cambia la directiva del intérprete y/o el número mágico , y las referencias al programa desde otros programas siguen siendo válidas.

Temas de seguridad

El comportamiento predeterminado del Explorador de archivos , el explorador de archivos proporcionado con Microsoft Windows , es que no se muestren las extensiones de los nombres de archivos. Los usuarios malintencionados han intentado propagar virus y gusanos informáticos utilizando nombres de archivos con formato LOVE-LETTER-FOR-YOU.TXT.vbs. La esperanza es que aparezca como LOVE-LETTER-FOR-YOU.TXTun archivo de texto inofensivo, sin alertar al usuario de que se trata de un programa informático dañino, en este caso escrito en VBScript . El comportamiento predeterminado de ReactOS es mostrar las extensiones de nombre de archivo en ReactOS Explorer .

Las versiones posteriores de Windows (comenzando con Windows XP Service Pack 2 y Windows Server 2003 ) incluían listas personalizables de extensiones de nombres de archivos que deberían considerarse "peligrosas" en ciertas "zonas" de operación, como cuando se descargan de la web o se reciben como correo electrónico. archivo adjunto de correo. Los sistemas de software antivirus modernos también ayudan a defender a los usuarios contra estos intentos de ataques siempre que sea posible.

Algunos virus aprovechan la similitud entre el dominio de nivel superior " .com " y la extensión de nombre de archivo ".COM" enviando por correo electrónico archivos adjuntos de comandos ejecutables y maliciosos con nombres superficialmente similares a las URL ( por ejemplo , "myparty.yahoo.com" ), con el efecto de que los usuarios inconscientes hacen clic en enlaces incrustados en correos electrónicos que creen que conducen a sitios web pero en realidad descargan y ejecutan archivos adjuntos maliciosos.

Ha habido casos de malware diseñado para explotar vulnerabilidades en algunas aplicaciones de Windows que podrían provocar un desbordamiento del búfer basado en la pila al abrir un archivo con una extensión de nombre de archivo demasiado larga y no controlada.

La extensión del nombre del archivo es solo un marcador y el contenido del archivo no tiene por qué coincidir. [9] Esto se puede utilizar para disfrazar contenido malicioso. Por lo tanto, al intentar identificar un archivo por razones de seguridad, se considera peligroso confiar únicamente en la extensión y es preferible realizar un análisis adecuado del contenido del archivo. Por ejemplo, en sistemas tipo UNIX , no es raro encontrar archivos sin ninguna extensión, ya que los comandos como fileestán destinados a usarse en su lugar y leerán el encabezado del archivo para determinar su contenido.

Ver también

Referencias

  1. ^ "¿Qué es un archivo?" (PDF) . z/VM - Versión 7 Lanzamiento 1 - Introducción a CMS (PDF) . IBM. 2018-09-11. pag. 7. SC24-6265-00. Una cosa que necesita saber acerca de la creación de archivos con z/VM es que cada archivo necesita su propio identificador de tres partes. La primera parte del identificador es el nombre del archivo. La segunda parte es el tipo de archivo. Y la tercera parte es el modo de archivo. Estos tres identificadores de archivos suelen abreviarse como fn ft fm.
  2. ^ "Códigos de tipo de archivo y creador de Mac". livecode.byu.edu . Consultado el 2 de septiembre de 2022 .
  3. ^ "javac: compilador del lenguaje de programación Java". Sun Microsystems, Inc. 2004 . Consultado el 31 de mayo de 2009 . Los nombres de los archivos de código fuente deben tener sufijos .java, los nombres de archivos de clase deben tener sufijos .class y tanto los archivos fuente como los de clase deben tener nombres raíz que identifiquen la clase.
  4. ^ Stauffer, Todd; McElhearn, Kirk (2006). Dominar Mac OS X. John Wiley & Sons. págs. 95–96. ISBN 9780782151282. Consultado el 2 de octubre de 2017 .
  5. ^ Detalles de la extensión de archivo .RPM de filext.com
  6. ^ Detalles de la extensión de archivo .QIF de filext.com
  7. ^ Detalles de la extensión de archivo .GBA de filext.com
  8. ^ Extensiones de nombre de comando consideradas dañinas
  9. ^ "¿Qué es una extensión de archivo?".

enlaces externos