tipos lista informatica imagen extensiones ejemplos documentos archivos archivo abrir filenames file-extension dotfiles

filenames - lista - tipos de archivos de windows



¿Los archivos dot tienen una extensión de archivo? (4)

Diría que están ocultos ... En Unix / Linux, un archivo / directorio se considera oculto si su primer carácter es "." (punto), por lo que es solo el primer caracter, no una extensión / sufijo.

Además, los directorios también se pueden ocultar, incluido el "." y los directorios ".." (actual y principal) - y la extensión / sufijo no es algo que normalmente asociamos con los directorios. De hecho, muchos programas crean tales directorios ocultos para ellos (por ejemplo, .foo) en lugar de solo un archivo (por ejemplo, .foorc).

Finalmente, Unix / Linux nunca se ha preocupado por los sufijos de todos modos, la mayoría de los programas pueden leer "sus" archivos sin retransmitir en uno. En cambio, Unix a menudo utiliza pruebas del archivo "mágico" (/ etc / magic) y el comando de file para impedir el tipo de archivo. (La excepción notable son los programas de compresión como gzip y bzip2 , que reemplaza el original con una versión comprimida con sufijo).

Yo agregaría que el "rc" -ending (para "run-command") - en, por ejemplo, .bashrc, .wgetrc, .zshrc, etc., podría considerarse como el sufijo / extensión para este tipo de archivos: evento aunque no hay punto entre el nombre y el sufijo (algunos como .rtorrent.rc - realmente tienen un punto).

¿Los archivos punto, como .htaccess .gitignore y .config , tienen una extensión de archivo y ningún nombre de archivo o se considera que tienen un nombre de archivo y ninguna extensión?

Estoy intentando implementar algunas funciones de utilidad en PHP, que es notorio por hacer las cosas mal y noté que la función pathinfo de PHP considera que los archivos punto tienen una extensión de archivo y ningún nombre de archivo, mientras que la path.extname del path.extname considera que los archivos punto tienen un nombre de archivo y no extensión.

No estoy seguro de si existe un estándar, o si esto equivale a la preferencia del desarrollador.


La razón por la cual alguien querría saber la extensión de un archivo es porque quiere saber el tipo (o algún otro metadato) del archivo, ¿verdad?

El nombre de un archivo de puntos no tiene nada que ver con su tipo. La parte posterior al primer punto del dotfile es su nombre y no tiene extensión. Pero un archivo de .mongorc.js también podría tener una extensión (por ejemplo, .mongorc.js u otro archivo oculto en un sistema UNIX).

Así que diría, la forma en que la path.extname del path.extname está haciendo es la correcta .

Devuelve la extensión del camino, desde el último ''.'' al final de la cadena en la última parte de la ruta. Si no hay ''.'' en la última parte de la ruta o el primer carácter de la misma es ''.'', luego devuelve una cadena vacía.

Aquí hay dos cosas diferentes:

  • Existe, por un lado, el mecanismo para determinar algunos metadatos mediante una extensión de nombre de archivo, por ejemplo, para abrirlo con una aplicación "predeterminada" en sistemas que no sean unixistas .

  • Los archivos de puntos, por otro lado, son solo archivos ocultos (con un nombre normal y un punto delante, para que no sean visibles para ls ) provenientes de sistemas tipo Unix. Entonces .gitignore es solo un archivo llamado gitignore y marcado como oculto - aquí no hay extensión .


Siento que debo dejar una respuesta que aborde el problema real del usuario.

¿Para qué necesitas la extensión en este caso? Los archivos como .gitignore , .htaccess , etc. se .gitignore con el nombre completo del archivo. No es la "extensión" (o falta de) sino el nombre completo.

Yo argumentaría el caso para eliminar cualquier comprobación de extensiones de archivos y verificar el nombre del archivo. Por ejemplo, en PHP:

basename ("/path/to/.htaccess");


Usted paga su dinero y elige lo que elija: sí, no, quizás.

Todo se reduce a tu definición de ''extensión''.

  • ¿Es "algo después del último punto en el nombre"? Si es así, esos archivos no tienen nombre y son todos extensiones.
  • ¿Es "algo después de un punto que no es el primer personaje en el nombre"? Si es así, esos archivos no tienen una extensión.
  • Si usa alguna otra definición, entonces la respuesta deberá ajustarse en consecuencia.

Recuerde que los archivos SCCS usaron un prefijo s. (entre otros, también vería archivos p. y había muchos nombres de archivos transitorios con otros prefijos). ¿ s.something archivo SCCS tiene una extensión o un prefijo? (Con s.source.c , es razonablemente sencillo, hay un prefijo, un nombre y una extensión o sufijo, o puede ignorar el prefijo como un caso especial y el nombre es en s.source y la extensión es .c .) ¿Qué pasa con el nombre ejecutable predeterminado, a.out ? ¿Qué tal un nombre como ... ..dot ? tiene una extensión, y si es así, ¿qué es?

Tenga en cuenta que la respuesta en DOS fue más formal. Allí, el sistema de archivos utilizado para imponer (una vez sobre otro milenio más o menos) nombres con 8.3 y la extensión era tangible. Pero esa es una época pasada en su mayor parte (y hay pocos que la extrañan).

Anthony Arnold y paxdiablo señalaron que existen nombres que terminan en .tar.gz , ¿cuál es la extensión de dichos archivos?

Si tratas la extensión de somecode-8.76.tar.gz como algo distinto de .gz , te estás abriendo a un bag''o''worms. El archivo contenido es somecode-8.76.tar ; que se puede decir razonablemente que tiene una extensión de .tar . Definir la extensión de todo el archivo tar gzipped como .tar.gz plantea la pregunta de "por qué no es .76.tar.gz " y también significa que debe volver a visitar la convención de nomenclatura de archivos SCCS. Absorber la porción .76 del nombre en .76.tar.gz o .76.tar como un sufijo hace que la vida sea compleja en verdad. Es una pregunta válida, pero cualquier cosa que no sea "una extensión es la cadena desde el último punto hasta el final del nombre" está realmente cargada, o requiere una interpretación del significado de la extensión, y entra en otra área compleja que generalmente es es mejor evitarlo

Tenga en cuenta que a Unix en el nivel O / S o sistema de archivos no le importa la extensión de los archivos. Los programas pueden decidir que les importan las extensiones, pero eso depende del programa. La extensión es un indicador del tipo de archivo; no es definitivo Es por eso que el programa de file existe para identificar los contenidos de los archivos. Mira el contenido del archivo para identificar el contenido; no presta atención a la extensión de archivo (por lo que no tiene que decidir cuál es la extensión).