DIFF(1) Herramientas de GNU DIFF(1)
diff - busca diferencias entre dos ficheros
diff [opciones] fichero-origen fichero-destino
En el caso ms simple, diff compara los contenidos de los dos ficheros
fichero-origen y fichero-destino. Un nombre de fichero - significa
texto ledo desde la entrada estndar. Como un caso especial, diff - -
compara una copia de la entrada estndar consigo misma.
Si fichero-origen es un directorio y fichero-destino no lo es, diff
compara el fichero en fichero-origen cuyo nombre sea igual que el de
fichero-destino, y viceversa. El fichero no directorio no puede ser -.
Si tanto fichero-origen como fichero-destino son directorios, diff com-
para los ficheros correspondientes en ambos directorios, en orden
alfabtico; esta comparacin no es recursiva a menos que se hayan dado
las opciones -r o --recursive. diff nunca compara los contenidos
reales de un directorio como si fuera un fichero. El fichero que se
especifique completamente no puede ser la entrada estndar, puesto que
la entrada estndar no tiene nombre y la nocin de ``fichero con el mismo
nombre'' no puede aplicarse.
Las opciones de diff empiezan con -, as que normalmente fichero-origen
y fichero-destino no pueden empezar con -. Sin embargo, -- como un
argumento solo, trata los restantes argumentos como nombres de fichero
incluso si empiezan con -.
Opciones
A continuacin se presenta un sumario de todas las opciones que diff de
GNU acepta. La mayora de ellas tienen dos nombres equivalentes, uno de
los cuales es una sola letra precedida por -, y el otro es un nombre
largo precedido por --. Varias opciones de una sola letra (a menos que
tomen un argumento) pueden combinarse en una sola palabra de la lnea de
rdenes: -ac es equivalente a -a -c. Las opciones largas pueden abre-
viarse a un prefijo nico de sus nombres. Los corchetes ([ y ]) indican
que una opcin toma un argumento opcional.
-lneas Muestra lneas (un entero) lneas de contexto. Esta opcin no
especifica por s misma un formato de salida; no tiene efecto si
no se combina con -c o -u. Esta opcin est obsoleta. Para una
operacin correcta, patch necesita tpicamente al menos dos lneas
de contexto.
-a Trata todos los ficheros como de texto y los compara lnea por
lnea, incluso si no parecen ser de texto.
-b Hace caso omiso de cambios referentes a la cantidad de espacio
en blanco.
-B No hace caso de cambios consistentes en slo insertar o borrar
lneas en blanco.
--brief
Informa solamente de si los ficheros difieren, no acerca de los
detalles de las diferencias.
-c Emplea el formato de salida de contexto.
-C lneas
--context[=lneas]
Emplea el formato de salida de contexto, mostrando lneas (un
entero) lneas de contexto, o tres si lneas no se da. Para una
operacin correcta, patch necesita tpicamente al menos dos lneas
de contexto.
--changed-group-format=formato
Emplea formato para mostrar un grupo de lneas conteniendo lneas
que difieren en ambos ficheros en formato if-then-else (si-
entonces-en otro caso).
-d Cambia el algoritmo para quizs encontrar un conjunto de cambios
ms pequeo. Esto hace a diff ms lento (a veces mucho ms lento).
-D nombre
Construye la salida en formato if-then-else mezclada, condi-
cional segn la macro del preprocesador nombre.
-e
--ed Hace que la salida sea un guin vlido para ed.
--exclude=patrn
Cuando compara directorios, descarta ficheros y subdirectorios
cuyos nombres base concuerden con patrn.
--exclude-from=fichero
Cuando compara directorios, descarta ficheros y subdirectorios
cuyos nombres case concuerden con cualquier patrn contenido en
fichero.
--expand-tabs
Expande tabuladores a espacios en la salida, para conservar la
alineacin de tabuladores en los ficheros de entrada.
-f Construye una salida que se parece vagamente a un guin del edi-
tor ed pero tiene cambios en el orden en que aparecen en el
fichero.
-F expreg
En formatos de contexto y unificado, para cada pedazo de difer-
encias, muestra algo de la ltima lnea precedente que concuerde
con la expresin regular expreg.
--forward-ed
Construye una salida que se parece vagamente a un guin del edi-
tor ed pero tiene cambios en el orden en que aparecen en el
fichero.
-h Esta opcin no tiene actualmente efecto; est presente por compat-
ibilidad con Unix.
-H Emplea heurstica para agilizar el tratamiento de ficheros
grandes que tienen numerosos cambios pequeos dispersos.
--horizon-lines=lneas
No descarta las ltimas lneas lneas del prefijo comn y las
primeras lneas lneas del sufijo comn.
-i No hace caso de cambios en la caja tipogrfica; considera las
letras maysculas y minsculas equivalentes.
-I expreg
Descarta cambios que simplementen inserten o borren lneas que
concuerden con la expresin regular expreg.
--ifdef=nombre
Construye la salida en formato if-then-else mezclada, condi-
cional segn la macro del preprocesador nombre.
--ignore-all-space
No hace caso del espacio en blanco cuando compara lneas.
--ignore-blank-lines
No hace caso de cambios que slo consistan en insertar o borrar
lneas en blanco.
--ignore-case
No hace caso de cambios en la caja tipogrfica; considera letras
maysculas y minsculas igual.
--ignore-matching-lines=expreg
No hace caso de cambios que solamente consistan en insertar o
borrar lneas que concuerden con expreg.
--ignore-space-change
No hace caso de cambios en la cantidad de espacio en blanco.
--initial-tab
Muestra en la salida un tabulador en vez de un espacio antes del
texto de una lnea en formato normal o de contexto. Esto hace que
la alineacin de tabuladores en la lnea se vea normal.
-l Pasa la salida a travs de pr para paginarla.
-L etiqueta
--label=etiqueta
Emplea etiqueta en vez del nombre del fichero en las cabeceras
de formatos de contexto y unificado.
--left-column
Imprime solamente la columna izquierda de dos lneas comunes en
el formato de lado a lado.
--line-format=formato
Emplea formato para mostrar en la salida todas las lneas de
entrada en el formato if-then-else.
--minimal
Cambia el algoritmo para quizs encontrar un conjunto ms pequeo
de cambios. Esto hace a diff ms lento (a veces mucho ms lento).
-n Muestra en la salida diferencias en formato RCS; como -f excepto
en que cada orden especifica el nmero de lneas afectadas.
-N
--new-file
En comparaciones de directorio, si se encuentra un fichero en
solamente un directorio, lo trata como presente pero vaco en el
otro.
--new-group-format=formato
Emplea formato para mostrar en la salida un grupo de lneas
tomadas de justo el segundo fichero en el formato if-then-else.
--new-line-format=formato
Emplea formato para mostrar en la salida una lnea tomada de
justo el segundo fichero en el formato if-then-else.
--old-group-format=formato
Emplea formato para mostrar en la salida un grupo de lneas
tomadas de justo el primer fichero en el formato if-then-else.
--old-line-format=formato
Emplea formato para mostrar en la salida una lnea tomada de
justo el primer fichero en el formato if-then-else.
-p Muestra en qu funcin de C est cada cambio.
-P Cuando compara directorios, si un fichero aparece solamente en
el segundo directorio de los dos, lo trata como presente pero
vaco en el otro.
--paginate
Pasa la salida por pr para paginarla.
-q Informa slo de si los ficheros difieren, no de los detalles de
las diferencias.
-r Cuando compara directorios, compara recursivamente cualesquier
subdirectorios encontrados.
--rcs Muestra en la salida diferencias en formato RCS; como -f excepto
en que cada orden especifica el nmero de lneas afectadas.
--recursive
Cuando compara directorios, compara recursivamente cualesquier
subdirectorios encontrados.
--report-identical-files
-s Informa de cuando dos ficheros son el mismo.
-S fichero
Cuando compara directorios, comienza con el fichero fichero.
Esto se usa para reanudar una comparacin interrumpida.
--sdiff-merge-assist
Muestra informacin extra para ayudar a sdiff. sdiff emplea esta
opcin cuando ejecuta diff. Esta opcin no est pensada para que
los usuarios la empleen directamente.
--show-c-function
Muestra en qu funcin de C est cada cambio.
--show-function-line=expreg
En formatos de contexto y unificado, para cada trozo de diferen-
cias, muestra algo de la ltima lnea precedente que concuerde con
la expresin regular expreg.
--side-by-side
Emplea el formato de salida lado a lado.
--speed-large-files
Emplea una heurstica para agilizar el tratamiento de ficheros
grandes que tienen numerosos pequeos cambios dispersos.
--starting-file=fichero
Cuando compara directorios, empieza con el fichero fichero.
Esto se emplea para reanudar una comparacin interrumpida.
--suppress-common-lines
No muestra lneas comunes en formato lado a lado.
-t Expande tabuladores a espacios en la salida, para preservar el
alineamiento de tabuladores en los ficheros de entrada.
-T Muestra en la salida un tabulador en vez de un espacio antes del
texto de una lnea en formato normal o de contexto. Esto hace que
la alineacin de tabuladores en la lnea se vea de forma normal.
--text Trata todos los ficheros como texto y los compara lnea por lnea,
incluso si no parecen ser de texto.
-u Emplea el formato de salida unificado.
--unchanged-group-format=formato
Emplea formato para mostrar en la salida un grupo de lneas
comunes tomadas de ambos ficheros en formato if-then-else.
--unchanged-line-format=formato
Emplea formato para mostrar en la salida una lnea comn a ambos
ficheros en el formato if-then-else.
--unidirectional-new-file
Cuando compara directorios, si un fichero aparece slo en el 2
directorio de los dos, lo trata como presente pero vaco en el
otro.
-U lneas
--unified[=lneas]
Emplea el formato de salida unificado, mostrando lneas (un
entero) lneas de contexto, o tres si lneas no se da. Para una
operacin correcta, patch necesita tpicamente como poco dos lneas
de contexto.
-v
--version
Muestra en la salida el nmero de versin de diff.
-w Descarta espacio en blanco cuando compara lneas.
-W columnas
--width=columnas
Emplea una anchura de salida de columnas en el formato de lado a
lado.
-x patrn
Cuando compara directorios, descarta ficheros y subdirectorios
cuyos nombres base concuerden con patrn.
-X fichero
Cuando compara directorios, descarta ficheros y subdirectorios
cuyos nombres base concuerden con cualquier patrn contenido en
fichero.
-y Emplea el formato de lado a lado.
cmp(1), comm(1), diff3(1), ed(1), patch(1), pr(1), sdiff(1).
Un estado de salida de 0 significa que no se encontraron diferencias, 1
significa que se encontr alguna diferencia y 2 significa problemas.
Herramientas de GNU 22 Septiembre 1993 DIFF(1)