Comando file Linux


FILE(1) 							       FILE(1)



NOMBRE
       file - determina el tipo de ficheros

SINOPSIS
       file [ -vbczL ] [ -f nombrefichero ] [ -m ficheromágico ] fichero ...

DESCRIPCIÓN
       Esta  página  del  Manual  documenta la versión 3.26 de la orden file .
       File comprueba cada argumento en un intento de clasificarlo.  Hay  tres
       conjuntos  de pruebas, efectuadas en este orden: pruebas de sistemas de
       ficheros, pruebas de números  mágicos,  y  pruebas  de  lenguajes.   La
       primera prueba que tenga éxito hace que se muestre el tipo del fichero.

       El  tipo mostrado contendrá usualmente una de las palabras text (texto:
       el fichero contiene  solamente  caracteres  ASCII  y  probablemente  es
       seguro  leerlo  en  una	terminal  ASCII  ), executable (ejecutable: el
       fichero contiene el resultado de la compilación de un programa  en  una
       forma  comprensible  para  algún  núcleo  UNIX),  o  data  (datos), que
       significa cualquier otra cosa (los datos son normalmente  `binarios'  o
       no  imprimibles).  Las  excepciones  son  los formatos de ficheros bien
       conocidos (volcados de memoria,	archivos  de  tar)  que  se  sabe  que
       contienen    datos    binarios.	   Cuando    modifique	  el   fichero
       /usr/share/misc/magic o el propio  programa,  conserve  estas  palabras
       reservadas.   Muchos  programas	dependen de que file muestre todos los
       ficheros legibles de un directorio con la palabra  ``text''.   No  haga
       como hicieron en la versión de Berkeley, que cambiaron ``shell commands
       text'' (texto con órdenes del shell)  a	``shell  script''  (guión  del
       shell).

       Las  pruebas  de  sistemas  de  ficheros  se  basan  en un examen de la
       devolución de una llamada al sistema stat(2).  El programa comprueba si
       el  fichero  está  vacío,  o  si  es  alguna clase de fichero especial.
       Cualquier tipo de fichero apropiado al sistema donde se esté (enchufes,
       enlaces	simbólicos, o tuberías con nombre (FIFOs) en aquellos sistemas
       que las implementen) se intuye  si  está  definido  en  el  fichero  de
       cabecera del sistema sys/stat.h.

       Las  pruebas  de números mágicos se emplean para comprobar ficheros con
       datos dispuestos en formatos fijos particulares.  El  ejemplo  canónico
       de  esto  es  un fichero ejecutable binario (programa compilado) a.out,
       cuyo formato se describe en a.out.h y  posiblemente  en	exec.h	en  el
       directorio  normal  de  ficheros de cabecera.  Estos ficheros tienen un
       `número mágico' guardado en una posición particular cerca del principio
       del fichero, que le dice al sistema operativo UNIX que el fichero es un
       binario ejecutable, y de qué tipo de entre unos cuantos. El concepto de
       `número	mágico'  se  ha  aplicado  por	extensión a ficheros de datos.
       Cualquier fichero con algún identificador invariante  en  una  posición
       fija y cercana al principio en el fichero puede normalmente describirse
       de esta forma. La información de estos ficheros	se  lee  del  `fichero
       mágico' /usr/share/misc/magic.

       Si  un argumento resulta ser un fichero ASCII, file intenta adivinar el
       lenguaje en el que  está  escrito.   Las  pruebas  de  lenguaje	buscan
       cadenas	de  caracteres particulares (cf.  names.h) que pueden aparecer
       en cualquier lugar dentro de los primeros bloques de un	fichero.   Por
       ejemplo,  la  palabra  clave  .br  indica  que  el fichero es con mucha
       probabilidad un fichero de entrada de troff(1), mientras que la palabra
       struct  puede  indicar  un  programa  en  C.   Estas  pruebas son menos
       confiables que las de los  dos  grupos  anteriores,  de	forma  que  se
       realizan  en último lugar.  Las rutinas de pruebas de lenguajes también
       hacen algunas otras comprobaciones (como buscar archivos de  tar(1))  y
       determinan  si  el  mensaje para un fichero desconocido debe ser `ascii
       text' (texto ASCII) o `data' (datos).

OPCIONES
       -v      Muestra la versión del programa y acaba.

       -m lista
	       Especifica una lista  alternativa  de  ficheros	que  contienen
	       números	mágicos.  Ésta	puede constar de un solo fichero, o de
	       una lista de ficheros separados por signos de dos puntos.

       -z      Intenta mirar dentro de ficheros comprimidos.

       -b      No precede las líneas de salida con los nombres de los ficheros
	       (modo breve).

       -c      Produce	un  listado  de comprobación de la forma analizada del
	       fichero mágico. Normalmente esto se emplea en conjunción con -m
	       para depurar un nuevo fichero mágico antes de instalarlo.

       -f nombrefichero
	       Lee  los nombres de los ficheros a examinar desde nombrefichero
	       (uno por línea) antes  de  la  lista  de  argumentos.   O  bien
	       nombrefichero  o  bien  por  lo	menos  un argumento que sea un
	       nombre de fichero,  debe  estar	presente;  para  comprobar  la
	       entrada	estándar,  emplee  `-'	como un argumento de nombre de
	       fichero.

       -L      Esta opción hace que se sigan los enlaces simbólicos,  como  la
	       opción  del  mismo  nombre  de  ls(1)  (en sistemas que admitan
	       enlaces simbólicos).

FICHEROS
       /usr/share/misc/magic - lista predeterminada de números mágicos

ENTORNO
       La variable de entorno MAGIC  se  puede	emplear  para  establecer  los
       ficheros predeterminados con números mágicos.

VÉASE TAMBIÉN
       magic(4) - descripción del formato del fichero mágico.
       strings(1), od(1), hexdump(1) - herramientas para examinar ficheros que
       no son de texto.

CONFORMANCIA CON ESTÁNDARES
       Se cree que este programa excede en comportamiento al descrito por SVID
       en  FILE(CMD), tanto como uno pueda deducir del vago lenguaje contenido
       en dicho documento.  Su comportamiento es mayormente compatible con  el
       programa de System V del mismo nombre. Esta versión sabe de más números
       mágicos, sin embargo, por lo que producirá  una	salida	diferente  (si
       bien más acertada) en muchos casos.

       La  diferencia  más significante entre esta versión y la de System V es
       que esta versión trata cualquier espacio en blanco como un delimitador,
       de  forma que los espacios en cadenas de patrones deben ser protegidos.
       Por ejemplo,
       >10  string    language impress	  (imPRESS data)
       en un fichero mágico existente tendría que cambiarse a
       >10  string    language\ impress   (imPRESS data)
       Además, en esta versión,  si  una  cadena  patrón  contiene  una  barra
       inclinada invertida, debe ser protegida. Por ejemplo
       0    string	   \begindata	  Andrew Toolkit document
       en un fichero mágico existente tendría que cambiarse a
       0    string	   \\begindata	  Andrew Toolkit document

       SunOS  en distribuciones 3.2 y siguientes, de Sun Microsystems, incluye
       una orden file(1)  derivada  de	la  de	System	V,  pero  con  algunas
       extensiones.   Mi  versión difiere de la de Sun sólo en pequeñas cosas.
       Incluye la extensión del operador `&', empleado como, por ejemplo,
       >16  long&0x7fffffff	>0	  not stripped

DIRECTORIO MÁGICO
       Las entradas del fichero mágico han sido  tomadas  de  varias  fuentes,
       principalmente  de  USENET, y han contribuido varios autores.  Christos
       Zoulas (su dirección está más abajo) recogerá  entradas	adicionales  o
       corregidas  del	fichero  mágico.   Se  distribuirá  periódicamente una
       consolidación de las entradas del fichero mágico.

       El orden de  las  entradas  en  el  fichero  mágico  es	significativo.
       Dependiendo  del  sistema que esté Ud. usando, el orden en el que estén
       puestas juntas puede ser incorrecto.  Si su vieja orden file emplea  un
       fichero	 mágico,  mantenga  el	viejo  fichero	mágico	por  ahí  para
       comparación (por ejemplo, renómbrelo a /usr/local/share/magic.orig).

HISTORIA
       Ha habido una orden file en cada UNIX desde al menos la	Versión  6  de
       Investigación  (estando fechada la página del Manual en Enero de 1975).
       La versión de System V introdujo un cambio importante significativo: la
       lista  externa  de tipos con números mágicos.  Esto ralentizaba algo el
       programa pero lo hacía mucho más flexible.

       Este programa, basado en la versión de System V, ha  sido  escrito  por
       Ian Darwin sin mirar el código fuente de nadie.

       John  Gilmore  revisó  extensamente  el código, haciéndolo mejor que la
       primera versión.  Geoff Collyer encontró algunas  cosas	inadecuadas  y
       proporcionó  algunas  entradas  del  fichero mágico.  Desde entonces el
       programa ha ido evolucionando continuamente.

AUTORES
       Escrito por Ian F. Darwin, dirección UUCP {utzoo  |  ihnp4}!darwin!ian,
       dirección  Internet ian@sq.com, dirección postal: P.O. Box 603, Station
       F, Toronto, Ontario, CANADÁ M4Y 2L8.

       Alterado por Rob McMahon, cudcv@warwick.ac.uk, en 1989,	para  extender
       el operador `&' de un simple `x&y != 0' a `x&y op z'.

       Alterado por Guy Harris, guy@netapp.com, en 1993, para:

	      poner  el operador `&' ``al viejo estilo'' de nuevo como estaba,
	      porque 1) el cambio de Rob McMahon rompió con el estilo  de  uso
	      anterior,  2)  el operador al ``nuevo estilo'' `&' de SunOS, que
	      esta versión de file también admite, ya maneja también  `x&y  op
	      z', y 3) el cambio de Rob no estaba documentado en ningún caso;

	      añadir múltiples niveles de `>';

	      añadir  las  palabras clave ``beshort'', ``leshort'', etc., para
	      buscar números en el fichero en un orden de bytes específico, en
	      vez  de  en  el  orden  de  bytes  nativo  del  proceso que esté
	      ejecutando a file.

       Cambios por Ian Darwin y varios autores incluyendo  a  Christos	Zoulas
       (christos@astron.com), 1990-1997.

ADVERTENCIA LEGAL
       Derechos  de  copia © Ian F. Darwin, Toronto, Canadá, 1986, 1987, 1988,
       1989, 1990, 1991, 1992, 1993.

       Este software no está sujeto y no puede	hacerse  estarlo  a  cualquier
       licencia  de la Cía. AT&T, Sun Microsystems Inc., Digital Equipment Co.
       Inc. (Compaq), Lotus Development Inc., los Regentes de  la  Universidad
       de California, el Consorcio X ni MIT, ni la FSF (Fundación del Software
       Libre).

       Este software no está sujeto a ninguna restricción de  exportación  del
       Departamento de Comercio de EE.UU., y puede exportarse a cualquier país
       o planeta.

       Se permite a cualquiera usar este software para cualquier propósito  en
       cualquier  sistema computador, y alterarlo y redistribuirlo libremente,
       sujeto a las siguientes restricciones:

       1. El autor no es responsable de las  consecuencias  del  uso  de  este
       software,  sin  importar  cuán  malas  fueren, incluso si sobrevienen a
       causa de defectos en él.

       2. El origen de este software no debe ser malinterpretado  o  alterado,
       bien  sea  explícitamente  o  por  omisión.  Puesto  que  son pocos los
       usuarios que alguna vez leen los fuentes, los créditos  deben  aparecer
       en la documentación.

       3.  Las versiones alteradas deben marcarse explícitamente como tales, y
       no pueden hacerse aparecer como si fueran el software original.	Puesto
       que  son  pocos	los  usuarios  que  alguna  vez  leen los fuentes, los
       créditos deben aparecer en la documentación.

       4. Esta nota no puede ser quitada ni alterada (espero que sí pueda  ser
       traducida, N. del T. :-).

       Unos  pocos  ficheros de soporte (getopt, strtok) distribuidos con este
       paquete son de Henry Spencer y están sujetos a los mismos términos  que
       los de arriba.

       Unos  pocos  ficheros  simples de soporte (strtol, strchr) distribuidos
       con este paquete están en el dominio público; así quedan marcados.

       Los ficheros tar.h e is_tar.c fueron escritos por John Gilmore a partir
       de  su  programa  tar  de dominio público, y no están cubiertos por las
       restricciones de antes.

FALLOS
       Debe haber una forma mejor de automatizar la construcción  del  fichero
       Magic a partir de todo lo de Magdir. ¿Cuál será?  Aún mejor, el fichero
       mágico debería compilarse a forma binaria (digamos,  ndbm(3)  o,  mejor
       todavía,  cadenas  ASCII de longitud fija para su empleo en entornos de
       red heterogéneos) para un arranque más rápido. Entonces el programa  se
       ejecutaría  tan rápido como el de la Versión 7 del mismo nombre, con la
       flexibilidad de la versión System V.

       File emplea algunos  algoritmos	que  favorecen	la  rapidez  sobre  el
       acierto,  de  modo  que puede equivocarse al adivinar los contenidos de
       ficheros ASCII.

       El  soporte  para  ficheros  ASCII  (sobre  todo  para	lenguajes   de
       programación)  es simplista, ineficiente, y requiere recompilación para
       actualizarse.

       Debería haber una cláusula ``else'' para seguir una serie de líneas  de
       continuación.

       El  fichero  mágico  y  las palabras clave deberían admitir expresiones
       regulares.  Su empleo del TAB ASCII como un delimitador de campo es feo
       y hace difícil editar los ficheros, pero es inamovible.

       Podría  ser  interesante  permitir  letras  mayúsculas  en las palabras
       clave; por ejemplo, órdenes troff(1) frente a macros  de  páginas  man.
       El soporte de expresiones regulares haría esto más fácil.

       Al  programa no le gusta FORTRAN.  Debería ser capaz de figurarse si el
       fichero es un programa en FORTRAN  viendo algunas  palabras  reservadas
       que  aparezcan  sangradas  al  principio  de  la  línea.  El soporte de
       expresiones regulares haría esto más fácil.

       La lista de palabras clave de ascmagic probablemente deba pertenecer al
       fichero	Magic.	 Esto  podría hacerse usando alguna palabra clave como
       `*' para el valor de desplazamiento.

       Otra mejora sería  ordenar  el  fichero	mágico	de  modo  que  podamos
       simplemente  ejecutar  todas  las  pruebas para el primer byte, primera
       palabra, primera palabra larga, etc., una vez que  la  hayamos  cogido.
       Protestar  de conflictos en las entradas del fichero mágico. ¿Construir
       una regla para que las  entradas  mágicas  se  ordenen  basadas	en  el
       desplazamiento  dentro  del fichero en vez de en la posición dentro del
       fichero mágico?

       El programa podría proporcionar una forma  de  dar  una	estimación  de
       ``cuán  buena''	es  una  estimación.   Acabamos quitando adivinaciones
       (p.ej. ``From '' como los 5 primeros caracteres de un  fichero)	porque
       no eran tan buenas como otras tentativas (p. ej. ``Newsgroups:'' frente
       a "Return-Path:"). Pero aún, si las otras no fueran buenas, debería ser
       posible utilizar la primera adivinación.

       Este programa es más lento que algunas órdenes file comerciales.

       Esta  página  del  Manual, y particularmente esta sección, es demasiado
       larga.

DISPONIBILIDAD
       Se puede obtener la última versión  original  del  autor  mediante  FTP
       anónimo en ftp.astron.com en el archivo /pub/file/file-X.YY.tar.gz.



			Con © pero se puede distribuir		       FILE(1)

Los comentarios están cerrados.