diff

diff confronta due file di testo come unified diff; il comando patch incluso applica la modifica solo se il contesto del sorgente corrisponde ancora. Salvare la patch e sostituire l’originale sono passaggi espliciti.

SviluppoVersione 1.1.3StabileAlias: patch
lil-terminal

Panoramica

Considera diff e patch come un unico ciclo di revisione: guarda la modifica, salvala se serve, applicala a una destinazione separata e solo dopo decidi se sostituire il sorgente.

Controllare la modifica prima di applicarla

Una sequenza utile è diff old.php new.php -o change.patch, poi patch old.php change.patch. Per impostazione predefinita viene creato un file .patched separato; solo -r sostituisce il sorgente.

Sintassi

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

Riferimento

diff <old> <new>

mostrare un unified diff con tre righe di contesto

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

scegliere da 0 a 20 righe di contesto

diff <old> <new> -q

indicare soltanto se i file differiscono

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

salvare il diff come patch

patch <file> <patch>

applicare la patch in <file>.patched

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

scrivere il risultato in un altro file

patch <file> <patch> -r

sostituire atomicamente il file originale

patch <file> <patch> -f

consentire la sostituzione di un output esistente senza -r

Controllare e applicare

diff old.php new.php -o change.patch salva la modifica verificata senza toccare i sorgenti. patch old.php change.patch crea per impostazione predefinita un .patched separato; -o <dst> sceglie un’altra destinazione e -r sostituisce l’originale.

Limiti e sicurezza

Ogni file di testo è limitato a 4 MiB e 20000 righe; i binari sono rifiutati. Prima della scrittura patch controlla ogni riga di contesto, quindi una patch per una versione diversa fallisce senza modificare il file.

Anteprima interattiva del sandbox

Esegui gli esempi preparati direttamente nella pagina. I risultati sono predefiniti e mostrati nel browser; sul server non viene eseguito alcun comando del terminale.

Mostrare un unified diff con tre righe di contesto

Installa e gestisci

Installa la versione compatibile corrente. Scegli Base per tutte le funzioni o Minimum per il pacchetto ridotto; usa upgrade per aggiornare un modulo già installato.

Base e Minimum sono due pacchetti della stessa release corrente del modulo.

Pacchetto Base

Installa il pacchetto completo con riferimento locale e tutte le modalità pubblicate.

install diff
Pacchetto Minimum

Installa il pacchetto ridotto. Il riferimento locale è omesso; help <cmd> -i apre il riferimento server corrente.

install diff -m
Versione pubblica esatta

Installa esattamente questa versione pubblicata.

install diff -v 1.1.3
Controlla o aggiorna

upgrade controlla la compatibilità e sostituisce il blocco solo quando serve.

upgrade diff
Rimuovi modulo

Rimuove il blocco estensione senza toccare core e altri moduli.

install diff -u

Esempi

Gli esempi sono copiabili ma il sito non li esegue. Controlla percorsi, permessi e opzioni distruttive.

Mostrare un unified diff con tre righe di contesto
cd \sandbox | diff workspace/original.txt workspace/updated.txt
--- workspace/original.txt
+++ workspace/updated.txt
@@ -1,2 +1,2 @@
-alpha
+alpha reviewed
Scegliere da 0 a 20 righe di contesto
diff workspace/original.txt workspace/updated.txt -c 1
--- workspace/original.txt
+++ workspace/updated.txt
@@ -1,2 +1,2 @@
-alpha
+alpha reviewed
Indicare soltanto se i file differiscono
diff workspace/original.txt workspace/updated.txt -q
Different  yes
Old        workspace/original.txt
New        workspace/updated.txt
Salvare il diff come patch
diff workspace/original.txt workspace/updated.txt -o tmp/workspace.patch
Saved  tmp/workspace.patch
Size   148 B
Applicare la patch in <file>.patched
patch workspace/original.txt tmp/workspace.patch
Source   workspace/original.txt
Patched  workspace/original.txt.patched

patch è fornito dal modulo diff e applica unified diff in modo controllato senza dipendere dal programma di sistema patch.

Scrivere il risultato in un altro file
patch workspace/original.txt tmp/workspace.patch -o tmp/patched.txt
Source   workspace/original.txt
Patched  tmp/patched.txt

patch è fornito dal modulo diff e applica unified diff in modo controllato senza dipendere dal programma di sistema patch.

Consentire la sostituzione di un output esistente senza -r
patch workspace/original.txt tmp/workspace.patch -o tmp/current.txt -f
Source   workspace/original.txt
Patched  tmp/current.txt
Replace  explicit

patch è fornito dal modulo diff e applica unified diff in modo controllato senza dipendere dal programma di sistema patch.

Sostituire atomicamente il file originale
patch workspace/original.txt tmp/workspace.patch -r
Source   workspace/original.txt
Patched  workspace/original.txt

patch è fornito dal modulo diff e applica unified diff in modo controllato senza dipendere dal programma di sistema patch.

Gestire un file di confronto mancante
diff missing.txt workspace/updated.txt
File non trovato: missing.txt

File usato in questo esempio: sandbox/workspace/original.txt

L’esempio usa un file o una directory dell’area di documentazione protetta /sandbox/.

alpha
beta
gamma

Documentazione correlata

Versione pubblica attuale

v1.1.32026-08-08

Prima versione stabile

Versione stabile attuale di diff. diff confronta due file di testo come unified diff; il comando patch incluso applica la modifica solo se il contesto del sorgente corrisponde ancora.