diff

diff compara dos archivos de texto como unified diff; el comando patch incluido aplica el cambio solo si el contexto del original sigue coincidiendo. Guardar el parche y sustituir el original son acciones explícitas.

DesarrolloVersión 1.1.3EstableAlias: patch
lil-terminal

Resumen

Conviene usar diff y patch como un solo ciclo de revisión: ver el cambio, guardarlo si hace falta, aplicarlo a un destino separado y solo después decidir si se sustituye el archivo original.

Revisar el cambio antes de aplicarlo

Una secuencia útil es diff old.php new.php -o change.patch y después patch old.php change.patch. Por defecto se crea un archivo .patched; solo -r sustituye el original.

Sintaxis

lil-terminal
diff <old> <new> [options]

Referencia

diff <old> <new>

mostrar un unified diff con tres líneas de contexto

diff <old> <new> -c <lines>

usar de 0 a 20 líneas de contexto

diff <old> <new> -q

informar solo si los archivos difieren

diff <old> <new> -o <patch>

guardar el diff como parche

patch <file> <patch>

aplicar el parche en <file>.patched

patch <file> <patch> -o <dst>

escribir el resultado en otro archivo

patch <file> <patch> -r

sustituir el original de forma atómica

patch <file> <patch> -f

permitir sustituir una salida existente sin -r

Revisar y aplicar

diff old.php new.php -o change.patch guarda el cambio revisado sin modificar los dos fuentes. patch old.php change.patch crea por defecto un .patched separado; -o <dst> elige otro destino y -r sustituye el original.

Límites y seguridad

Cada archivo de texto está limitado a 4 MiB y 20000 líneas y se rechazan binarios. Antes de escribir, patch verifica todas las líneas de contexto; un parche creado para otra versión falla antes de modificar el archivo.

Vista interactiva del sandbox

Ejecuta los ejemplos preparados directamente en la página. Los resultados están predefinidos y se muestran en el navegador; no se ejecuta ningún comando de terminal en el servidor.

Mostrar un unified diff con tres líneas de contexto

Instalar y administrar

Instala la versión compatible actual. Elige Base para el conjunto completo de funciones o Minimum para el paquete reducido; usa upgrade para actualizar un módulo ya instalado.

Base y Minimum son dos paquetes de la misma versión actual del módulo.

Paquete Base

Instala el paquete completo con referencia local y todos los modos publicados.

install diff
Paquete Minimum

Instalar el paquete reducido. No incluye la referencia local; help <cmd> -i abre la referencia actual del servidor.

install diff -m
Versión pública exacta

Instalar exactamente esta versión publicada.

install diff -v 1.1.3
Comprobar o actualizar

upgrade comprueba la compatibilidad y sustituye el bloque solo cuando hace falta.

upgrade diff
Eliminar módulo

Elimina el bloque de extensión sin tocar el núcleo ni otros módulos.

install diff -u

Ejemplos

Los ejemplos se pueden copiar, pero el sitio no los ejecuta. Revisa rutas, permisos y opciones destructivas.

Mostrar un unified diff con tres líneas de contexto
cd \sandbox | diff workspace/original.txt workspace/updated.txt
--- workspace/original.txt
+++ workspace/updated.txt
@@ -1,2 +1,2 @@
-alpha
+alpha reviewed
Usar de 0 a 20 líneas de contexto
diff workspace/original.txt workspace/updated.txt -c 1
--- workspace/original.txt
+++ workspace/updated.txt
@@ -1,2 +1,2 @@
-alpha
+alpha reviewed
Informar solo si los archivos difieren
diff workspace/original.txt workspace/updated.txt -q
Different  yes
Old        workspace/original.txt
New        workspace/updated.txt
Guardar el diff como parche
diff workspace/original.txt workspace/updated.txt -o tmp/workspace.patch
Saved  tmp/workspace.patch
Size   148 B
Aplicar el parche en <file>.patched
patch workspace/original.txt tmp/workspace.patch
Source   workspace/original.txt
Patched  workspace/original.txt.patched

patch forma parte del módulo diff y aplica unified diff de forma controlada sin depender del programa patch del sistema.

Escribir el resultado en otro archivo
patch workspace/original.txt tmp/workspace.patch -o tmp/patched.txt
Source   workspace/original.txt
Patched  tmp/patched.txt

patch forma parte del módulo diff y aplica unified diff de forma controlada sin depender del programa patch del sistema.

Permitir sustituir una salida existente sin -r
patch workspace/original.txt tmp/workspace.patch -o tmp/current.txt -f
Source   workspace/original.txt
Patched  tmp/current.txt
Replace  explicit

patch forma parte del módulo diff y aplica unified diff de forma controlada sin depender del programa patch del sistema.

Sustituir el original de forma atómica
patch workspace/original.txt tmp/workspace.patch -r
Source   workspace/original.txt
Patched  workspace/original.txt

patch forma parte del módulo diff y aplica unified diff de forma controlada sin depender del programa patch del sistema.

Gestionar un archivo de comparación ausente
diff missing.txt workspace/updated.txt
Archivo no encontrado: missing.txt

Archivo usado en este ejemplo: sandbox/workspace/original.txt

El ejemplo usa un archivo o directorio del espacio protegido de documentación /sandbox/.

alpha
beta
gamma

Documentación relacionada

Versión pública actual

v1.1.32026-08-08

Primera versión estable

Versión estable actual de diff. diff compara dos archivos de texto como unified diff; el comando patch incluido aplica el cambio solo si el contexto del original sigue coincidiendo.