diff - busca diferencias entre dos ficheros
diff [opciones] fichero-origen fichero-destino
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
-.
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.
Un estado de salida de 0 significa que no se encontraron
diferencias, 1 significa que se encontró alguna diferencia y 2
significa problemas.