¿Por qué los archivos tar y gzip suelen tener una extensión de archivo?

8

Las extensiones de archivo no son necesarias en unices, aún todos los archivos alquilados, comprimidos o comprimidos que encuentro tienen una extensión de archivo como .tar, .tar.gzo .tgz.

¿Hay alguna razón especial para eso o es solo una convención?

Científico loco
fuente

Respuestas:

17

Originalmente, en sistemas unix, las extensiones en los nombres de archivos eran una cuestión de convención. Permitieron a un ser humano elegir el programa adecuado para abrir un archivo. La convención moderna es usar extensiones en la mayoría de los casos; Las excepciones comunes son:

  • Solo los archivos normales tienen una extensión, no directorios o nombres de dispositivos. El mero hecho de ser un directorio o dispositivo es suficiente indicación de tipo de archivo.
  • Los ejecutables que deben invocarse directamente no tienen una extensión. El mero hecho de ser ejecutable es suficiente información para el usuario, y al núcleo no le importan los nombres de archivo.
  • Los archivos que comienzan con una palabra en todas las tapas son a menudo archivos de texto, por ejemplo README, TODO. A veces hay una parte adicional que indican una subcategoría, por ejemplo INSTALL.linux, INSTALL.solaris.
  • Archivos cuyo nombre comienza con un punto de configuración son estatales o archivos de una aplicación particular, y con frecuencia no tienen una extensión, por ejemplo .bashrc, .profile, .emacs.
  • Hay algunos casos tradicionales, por ejemplo Makefile.

(Estos son casos comunes, no reglas estrictas).

La mayoría de los formatos de archivos binarios también contienen algún tipo de encabezado que describe las propiedades del archivo y, por lo general, permite identificar el formato del archivo a través de números mágicos . El filecomando mira esta información y le muestra sus conjeturas.

A veces, la extensión del archivo proporciona más información que el formato del archivo, a veces es al revés. Por ejemplo, muchos formatos de archivo consisten en un archivo zip : bibliotecas Java ( .jar), documentos de OpenOffice ( .odt, ...), documento de Microsoft Office ( .docx, ...), etc. Otro ejemplo son los archivos de código fuente, donde la extensión indica el lenguaje de programación, que puede será difícil para una computadora adivinar automáticamente a partir del contenido del archivo. Por el contrario, algunas extensiones son muy ambiguas, por ejemplo, .ose utilizan para archivos de código compilados (archivos de objeto ), pero la inspección del contenido del archivo generalmente revela fácilmente para qué tipo de máquina y sistema operativo es el archivo de objeto.

Una ventaja de la extensión es que es mucho más rápido reconocerlo que abrir el archivo y buscar secuencias mágicas. Por ejemplo, la finalización de los nombres de archivo en shells casi siempre se basa en el nombre (principalmente la extensión), porque leer cada archivo en un directorio grande puede llevar mucho tiempo, mientras que solo leer los nombres de archivos es lo suficientemente rápido como para Tabpresionarlo.

A veces, cambiar la extensión de un archivo puede permitirle decir cómo se debe interpretar un archivo, cuando dos formatos de archivo son casi, pero no completamente idénticos. Por ejemplo, un servidor web puede tratar .shtmly de manera .htmldiferente, el primero se somete a un preprocesamiento del lado del servidor , el último se sirve tal cual.

En el caso de los archivos gzip, gzipno lo hará volver a comprimir archivos cuyo nombre en extremos .gz, .tgzy algunas otras extensiones. De esa manera puede ejecutar gzip *para comprimir cada archivo en un directorio, y los archivos ya comprimidos no se modifican.

Gilles 'SO- deja de ser malvado'
fuente
1
El directorio que contiene scripts de daemon a veces también recibe extensión .d, por ejemplo init.d, cron.d, etc.
Lie Ryan
8

Es posible que no necesiten una extensión, pero seguro hace que identificarlos sea más fácil en la salida de ls.

locura del desarrollo
fuente
2
Exactamente. Por lo general, no hay una bandera de "sostenga mi mano por favor" tar, por lo que debe decirle qué tipo de archivo tiene.
Kevin Cantu
3

Las extensiones de archivo son principalmente una convención para los humanos que usan el sistema. Hay herramientas que usan la extensión de nombre de archivo para hacer cosas. Por ejemplo, Nautilus me muestra un icono diferente según la extensión del archivo.

Si le di un archivo llamado file, es posible que no sepa cómo abrir este archivo. Sin embargo, si te di un archivo llamado file.tar.gzo file.tarpodrías resolverlo rápida y fácilmente.

Stefan Lasiewski
fuente
55
Nautilus utiliza más que solo la extensión de archivo para determinar el tipo de archivo. Un archivo tar.gz sin la extensión generalmente obtendrá un símbolo elegante.
Steven D