Manpages

NOMBRE

diff − busca diferencias entre dos ficheros

SINOPSIS

diff [opciones] fichero-origen fichero-destino

DESCRIPCIÓN

En el caso más simple, diff compara los contenidos de los dos ficheros fichero-origen y fichero-destino. Un nombre de fichero significa texto leído desde la entrada estándar. Como un caso especial, diff − − compara una copia de la entrada estándar 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 compara los ficheros correspondientes en ambos directorios, en orden alfabético; esta comparación 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 estándar, puesto que la entrada estándar no tiene nombre y la noción 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 continuación se presenta un sumario de todas las opciones que diff de GNU acepta. La mayoría 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 línea de órdenes: −ac es equivalente a −a −c. Las opciones largas pueden abreviarse a un prefijo único de sus nombres. Los corchetes ([ y ]) indican que una opción toma un argumento opcional.
líneas

Muestra líneas (un entero) líneas de contexto. Esta opción no especifica por sí misma un formato de salida; no tiene efecto si no se combina con −c o −u. Esta opción está obsoleta. Para una operación correcta, patch necesita típicamente al menos dos líneas de contexto.

−a

Trata todos los ficheros como de texto y los compara línea por línea, 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 sólo insertar o borrar líneas 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 líneas
−−context[=
líneas]

Emplea el formato de salida de contexto, mostrando líneas (un entero) líneas de contexto, o tres si líneas no se da. Para una operación correcta, patch necesita típicamente al menos dos líneas de contexto.

−−changed−group−format=formato

Emplea formato para mostrar un grupo de líneas conteniendo líneas que difieren en ambos ficheros en formato if-then-else (si-entonces-en otro caso).

−d

Cambia el algoritmo para quizás encontrar un conjunto de cambios más pequeño. Esto hace a diff más lento (a veces mucho más lento).

−D nombre

Construye la salida en formato if-then-else mezclada, condicional según la macro del preprocesador nombre.

−e

−−ed

Hace que la salida sea un guión válido para ed.

−−exclude=patrón

Cuando compara directorios, descarta ficheros y subdirectorios cuyos nombres base concuerden con patrón.

−−exclude−from=fichero

Cuando compara directorios, descarta ficheros y subdirectorios cuyos nombres case concuerden con cualquier patrón contenido en fichero.

−−expand−tabs

Expande tabuladores a espacios en la salida, para conservar la alineación de tabuladores en los ficheros de entrada.

−f

Construye una salida que se parece vagamente a un guión del editor 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 diferencias, muestra algo de la última línea precedente que concuerde con la expresión regular expreg.

−−forward−ed

Construye una salida que se parece vagamente a un guión del editor ed pero tiene cambios en el orden en que aparecen en el fichero.

−h

Esta opción no tiene actualmente efecto; está presente por compatibilidad con Unix.

−H

Emplea heurística para agilizar el tratamiento de ficheros grandes que tienen numerosos cambios pequeños dispersos.

−−horizon−lines=líneas

No descarta las últimas líneas líneas del prefijo común y las primeras líneas líneas del sufijo común.

−i

No hace caso de cambios en la caja tipográfica; considera las letras mayúsculas y minúsculas equivalentes.

−I expreg

Descarta cambios que simplementen inserten o borren líneas que concuerden con la expresión regular expreg.

−−ifdef=nombre

Construye la salida en formato if-then-else mezclada, condicional según la macro del preprocesador nombre.

−−ignore−all−space

No hace caso del espacio en blanco cuando compara líneas.

−−ignore−blank−lines

No hace caso de cambios que sólo consistan en insertar o borrar líneas en blanco.

−−ignore−case

No hace caso de cambios en la caja tipográfica; considera letras mayúsculas y minúsculas igual.

−−ignore−matching−lines=expreg

No hace caso de cambios que solamente consistan en insertar o borrar líneas 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 línea en formato normal o de contexto. Esto hace que la alineación de tabuladores en la línea se vea normal.

−l

Pasa la salida a través 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 líneas comunes en el formato de lado a lado.

−−line−format=formato

Emplea formato para mostrar en la salida todas las líneas de entrada en el formato if-then-else.

−−minimal

Cambia el algoritmo para quizás encontrar un conjunto más pequeño de cambios. Esto hace a diff más lento (a veces mucho más lento).

−n

Muestra en la salida diferencias en formato RCS; como −f excepto en que cada orden especifica el número de líneas afectadas.

−N

−−new−file

En comparaciones de directorio, si se encuentra un fichero en solamente un directorio, lo trata como presente pero vacío en el otro.

−−new−group−format=formato

Emplea formato para mostrar en la salida un grupo de líneas tomadas de justo el segundo fichero en el formato if-then-else.

−−new−line−format=formato

Emplea formato para mostrar en la salida una línea 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 líneas tomadas de justo el primer fichero en el formato if-then-else.

−−old−line−format=formato

Emplea formato para mostrar en la salida una línea tomada de justo el primer fichero en el formato if-then-else.

−p

Muestra en qué función 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 vacío en el otro.

−−paginate

Pasa la salida por pr para paginarla.

−q

Informa sólo 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 número de líneas 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 comparación interrumpida.

−−sdiff−merge−assist

Muestra información extra para ayudar a sdiff. sdiff emplea esta opción cuando ejecuta diff. Esta opción no está pensada para que los usuarios la empleen directamente.

−−show−c−function

Muestra en qué función de C está cada cambio.

−−show−function−line=expreg

En formatos de contexto y unificado, para cada trozo de diferencias, muestra algo de la última línea precedente que concuerde con la expresión regular expreg.

−−side−by−side

Emplea el formato de salida lado a lado.

−−speed−large−files

Emplea una heurística para agilizar el tratamiento de ficheros grandes que tienen numerosos pequeños cambios dispersos.

−−starting−file=fichero

Cuando compara directorios, empieza con el fichero fichero. Esto se emplea para reanudar una comparación interrumpida.

−−suppress−common−lines

No muestra líneas 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 línea en formato normal o de contexto. Esto hace que la alineación de tabuladores en la línea se vea de forma normal.

−−text

Trata todos los ficheros como texto y los compara línea por línea, 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 líneas comunes tomadas de ambos ficheros en formato if-then-else.

−−unchanged−line−format=formato

Emplea formato para mostrar en la salida una línea común a ambos ficheros en el formato if-then-else.

−−unidirectional−new−file

Cuando compara directorios, si un fichero aparece sólo en el 2º directorio de los dos, lo trata como presente pero vacío en el otro.

−U líneas
−−unified[=
líneas]

Emplea el formato de salida unificado, mostrando líneas (un entero) líneas de contexto, o tres si líneas no se da. Para una operación correcta, patch necesita típicamente como poco dos líneas de contexto.

−v

−−version

Muestra en la salida el número de versión de diff.

−w

Descarta espacio en blanco cuando compara líneas.

−W columnas
−−width=
columnas

Emplea una anchura de salida de columnas en el formato de lado a lado.

−x patrón

Cuando compara directorios, descarta ficheros y subdirectorios cuyos nombres base concuerden con patrón.

−X fichero

Cuando compara directorios, descarta ficheros y subdirectorios cuyos nombres base concuerden con cualquier patrón contenido en fichero.

−y

Emplea el formato de lado a lado.

VÉASE TAMBIÉN

cmp(1), comm(1), diff3(1), ed(1), patch(1), pr(1), sdiff(1).

DIAGNÓSTICOS

Un estado de salida de 0 significa que no se encontraron diferencias, 1 significa que se encontró alguna diferencia y 2 significa problemas.