Provided by:
manpages-es-extra_0.8a-17_all 
NOMBRE
file - determina el tipo de ficheros
SINOPSIS
file [ -vbczL ] [ -f nombrefichero ] [ -m ficheromagico ] fichero ...
DESCRIPCI'ON
Esta pagina del Manual documenta la version 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 numeros magicos, y pruebas de lenguajes. La
primera prueba que tenga exito hace que se muestre el tipo del fichero.
El tipo mostrado contendra 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 compilacion de un programa en una
forma comprensible para algun nucleo 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 version de Berkeley, que cambiaron ``shell commands
text'' (texto con ordenes del shell) a ``shell script'' (guion del
shell).
Las pruebas de sistemas de ficheros se basan en un examen de la
devolucion de una llamada al sistema stat(2). El programa comprueba si
el fichero esta vacio, o si es alguna clase de fichero especial.
Cualquier tipo de fichero apropiado al sistema donde se este (enchufes,
enlaces simbolicos, o tuberias con nombre (FIFOs) en aquellos sistemas
que las implementen) se intuye si esta definido en el fichero de
cabecera del sistema sys/stat.h.
Las pruebas de numeros magicos se emplean para comprobar ficheros con
datos dispuestos en formatos fijos particulares. El ejemplo canonico
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
`numero magico' guardado en una posicion particular cerca del principio
del fichero, que le dice al sistema operativo UNIX que el fichero es un
binario ejecutable, y de que tipo de entre unos cuantos. El concepto de
`numero magico' se ha aplicado por extension a ficheros de datos.
Cualquier fichero con algun identificador invariante en una posicion
fija y cercana al principio en el fichero puede normalmente describirse
de esta forma. La informacion de estos ficheros se lee del `fichero
magico' /usr/share/misc/magic.
Si un argumento resulta ser un fichero ASCII, file intenta adivinar el
lenguaje en el que esta 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 ultimo lugar. Las rutinas de pruebas de lenguajes tambien
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 version del programa y acaba.
-m lista
Especifica una lista alternativa de ficheros que contienen
numeros magicos. Esta 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 lineas de salida con los nombres de los ficheros
(modo breve).
-c Produce un listado de comprobacion de la forma analizada del
fichero magico. Normalmente esto se emplea en conjuncion con -m
para depurar un nuevo fichero magico antes de instalarlo.
-f nombrefichero
Lee los nombres de los ficheros a examinar desde nombrefichero
(uno por linea) 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 estandar, emplee `-' como un argumento de nombre de
fichero.
-L Esta opcion hace que se sigan los enlaces simbolicos, como la
opcion del mismo nombre de ls(1) (en sistemas que admitan
enlaces simbolicos).
FICHEROS
/usr/share/misc/magic - lista predeterminada de numeros magicos
ENTORNO
La variable de entorno MAGIC se puede emplear para establecer los
ficheros predeterminados con numeros magicos.
V'EASE TAMBI'EN
magic(4) - descripcion del formato del fichero magico.
strings(1), od(1), hexdump(1) - herramientas para examinar ficheros que
no son de texto.
CONFORMANCIA CON EST'ANDARES
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 version sabe de mas numeros
magicos, sin embargo, por lo que producira una salida diferente (si
bien mas acertada) en muchos casos.
La diferencia mas significante entre esta version y la de System V es
que esta version 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 magico existente tendria que cambiarse a
>10 string language\ impress (imPRESS data)
Ademas, en esta version, si una cadena patron contiene una barra
inclinada invertida, debe ser protegida. Por ejemplo
0 string \begindata Andrew Toolkit document
en un fichero magico existente tendria 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 version difiere de la de Sun solo en pequenas cosas.
Incluye la extension del operador `&', empleado como, por ejemplo,
>16 long&0x7fffffff >0 not stripped
DIRECTORIO M'AGICO
Las entradas del fichero magico han sido tomadas de varias fuentes,
principalmente de USENET, y han contribuido varios autores. Christos
Zoulas (su direccion esta mas abajo) recogera entradas adicionales o
corregidas del fichero magico. Se distribuira periodicamente una
consolidacion de las entradas del fichero magico.
El orden de las entradas en el fichero magico es significativo.
Dependiendo del sistema que este Ud. usando, el orden en el que esten
puestas juntas puede ser incorrecto. Si su vieja orden file emplea un
fichero magico, mantenga el viejo fichero magico por ahi para
comparacion (por ejemplo, renombrelo a /usr/local/share/magic.orig).
HISTORIA
Ha habido una orden file en cada UNIX desde al menos la Version 6 de
Investigacion (estando fechada la pagina del Manual en Enero de 1975).
La version de System V introdujo un cambio importante significativo: la
lista externa de tipos con numeros magicos. Esto ralentizaba algo el
programa pero lo hacia mucho mas flexible.
Este programa, basado en la version de System V, ha sido escrito por
Ian Darwin sin mirar el codigo fuente de nadie.
John Gilmore reviso extensamente el codigo, haciendolo mejor que la
primera version. Geoff Collyer encontro algunas cosas inadecuadas y
proporciono algunas entradas del fichero magico. Desde entonces el
programa ha ido evolucionando continuamente.
AUTORES
Escrito por Ian F. Darwin, direccion UUCP {utzoo | ihnp4}!darwin!ian,
direccion Internet ian@sq.com, direccion postal: P.O. Box 603, Station
F, Toronto, Ontario, CANADA 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 rompio con el estilo de uso
anterior, 2) el operador al ``nuevo estilo'' `&' de SunOS, que
esta version de file tambien admite, ya maneja tambien `x&y op
z', y 3) el cambio de Rob no estaba documentado en ningun caso;
anadir multiples niveles de `>';
anadir las palabras clave ``beshort'', ``leshort'', etc., para
buscar numeros en el fichero en un orden de bytes especifico, en
vez de en el orden de bytes nativo del proceso que este
ejecutando a file.
Cambios por Ian Darwin y varios autores incluyendo a Christos Zoulas
(christos@astron.com), 1990-1997.
ADVERTENCIA LEGAL
Derechos de copia (C) Ian F. Darwin, Toronto, Canada, 1986, 1987, 1988,
1989, 1990, 1991, 1992, 1993.
Este software no esta sujeto y no puede hacerse estarlo a cualquier
licencia de la Cia. 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 (Fundacion del Software
Libre).
Este software no esta sujeto a ninguna restriccion de exportacion del
Departamento de Comercio de EE.UU., y puede exportarse a cualquier pais
o planeta.
Se permite a cualquiera usar este software para cualquier proposito 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 cuan malas fueren, incluso si sobrevienen a
causa de defectos en el.
2. El origen de este software no debe ser malinterpretado o alterado,
bien sea explicitamente o por omision. Puesto que son pocos los
usuarios que alguna vez leen los fuentes, los creditos deben aparecer
en la documentacion.
3. Las versiones alteradas deben marcarse explicitamente 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
creditos deben aparecer en la documentacion.
4. Esta nota no puede ser quitada ni alterada (espero que si pueda ser
traducida, N. del T. :-).
Unos pocos ficheros de soporte (getopt, strtok) distribuidos con este
paquete son de Henry Spencer y estan sujetos a los mismos terminos que
los de arriba.
Unos pocos ficheros simples de soporte (strtol, strchr) distribuidos
con este paquete estan en el dominio publico; asi quedan marcados.
Los ficheros tar.h e is_tar.c fueron escritos por John Gilmore a partir
de su programa tar de dominio publico, y no estan cubiertos por las
restricciones de antes.
FALLOS
Debe haber una forma mejor de automatizar la construccion del fichero
Magic a partir de todo lo de Magdir. cCual sera? Aun mejor, el fichero
magico deberia compilarse a forma binaria (digamos, ndbm(3) o, mejor
todavia, cadenas ASCII de longitud fija para su empleo en entornos de
red heterogeneos) para un arranque mas rapido. Entonces el programa se
ejecutaria tan rapido como el de la Version 7 del mismo nombre, con la
flexibilidad de la version 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
programacion) es simplista, ineficiente, y requiere recompilacion para
actualizarse.
Deberia haber una clausula ``else'' para seguir una serie de lineas de
continuacion.
El fichero magico y las palabras clave deberian admitir expresiones
regulares. Su empleo del TAB ASCII como un delimitador de campo es feo
y hace dificil editar los ficheros, pero es inamovible.
Podria ser interesante permitir letras mayusculas en las palabras
clave; por ejemplo, ordenes troff(1) frente a macros de paginas man.
El soporte de expresiones regulares haria esto mas facil.
Al programa no le gusta FORTRAN. Deberia ser capaz de figurarse si el
fichero es un programa en FORTRAN viendo algunas palabras reservadas
que aparezcan sangradas al principio de la linea. El soporte de
expresiones regulares haria esto mas facil.
La lista de palabras clave de ascmagic probablemente deba pertenecer al
fichero Magic. Esto podria hacerse usando alguna palabra clave como
`*' para el valor de desplazamiento.
Otra mejora seria ordenar el fichero magico 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 magico. cConstruir
una regla para que las entradas magicas se ordenen basadas en el
desplazamiento dentro del fichero en vez de en la posicion dentro del
fichero magico?
El programa podria proporcionar una forma de dar una estimacion de
``cuan buena'' es una estimacion. 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 aun, si las otras no fueran buenas, deberia ser
posible utilizar la primera adivinacion.
Este programa es mas lento que algunas ordenes file comerciales.
Esta pagina del Manual, y particularmente esta seccion, es demasiado
larga.
DISPONIBILIDAD
Se puede obtener la ultima version original del autor mediante FTP
anonimo en ftp.astron.com en el archivo /pub/file/file-X.YY.tar.gz.
Con (C) pero se puede distribuir FILE(1)