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.