NOME
diff − trova differenze tra due file
SINTASSI
diff [opzioni] file-da file-verso
DESCRIZIONE
Nel caso più semplice, diff confronta il contenuto dei due file file-da e file-verso. Se − viene usato come nome di file, allora il testo viene letto da standard input. Come caso speciale, diff − − confronta una copia di standard input con se stessa.
Se file-da è una directory mentre file-verso non lo è, diff fa il confronto col file in file-da con nome file-verso, e vice versa. Il file (che non è una directory) non può essere −.
Se sia file-da che file-verso sono directory, diff confronta i file corrispondenti di ciascuna directory, in ordine alfabetico; il confronto non è ricorsivo, a meno che venga usata l’opzione −r o −−recursive. diff non confronta mai il contenuto di una directory come se fosse un file normale. Il file che viene specificato totalmente non può essere standard input, non avendo questo un nome, e quindi non avendo senso il concetto di «file con lo stesso nome».
Le opzioni di diff iniziano con −, per cui, normalmente, né file-da né file-verso possono iniziare con un −. D’altra parte, −− come argomento a sé stante tratta gli argomenti rimanenti come nomi di file, anche se iniziano per −.
Opzioni
Più sotto c’è un sommario di tutte le
opzioni accettate dalla versione GNU di diff. La
maggior parte delle opzioni ha due nomi equivalenti, uno dei
quali è una lettera singola preceduta da
−, mentre l’altro è un nome lungo
preceduto da −−. Più opzioni
monolettera possono essere combinate in una singola parola
sulla riga di comando (a meno che siano seguite da
un’opzione): −ac è
l’equivalente di −a −c. Le opzioni
lunghe possono essere abbreviate ad un prefisso unico del
nome. Parentesi quadre ([ e ]) indicano che
un’opzione prende un argomento opzionale.
−righe |
mostra righe (un intero) righe di contesto. Questa opzione non specifica da sola un formato di output; non ha nessun effetto a meno che venga combinata con −c o −u. Quest’opzione è obsoleta. Per operare correttamente, patch ha, di solito, bisogno di almeno due righe di contesto. | ||
−a |
Tratta tutti i file come testo confrontandoli riga per riga, anche se non sembrano essere testo. | ||
−b |
Ignora differenza nella quantità di spazi bianchi. | ||
−B |
Ignora differenze che consistono solo in righe vuote (eccedenti o mancanti). |
−−brief
Riferisce solo se i file sono diversi, e non i particolari della differenza.
−c |
Usa il formato «a contesto» (context output, in inglese). |
−C righe
−−context[=righe]
Usa il formato a contesto, mostrando righe (un intero) righe di contesto, o tre se righe non è specificata. Per operare correttamente, patch ha, di solito, bisogno di almeno due righe di contesto.
−−changed−group−format=formato
Usa formato per scrivere un gruppo di righe contenente le differenze di entrambi i file nel formato if-then-else.
−d |
Usa un algoritmo diverso per trovare un, probabilmente, minore insieme di modifiche da fare. Questo rende diff più lento (a volte molto più lento). |
−D nome
Scrive usando il formato if-then-else, dipendente dalla macro nome del preprocessore.
−e |
||||
−−ed |
Emette uno scritto ed valido. |
−−exclude=modello
Confrontando due directory, ignora file e sottodirectory il cui nome corrisponda a modello.
−−exclude−from=file
Confrontando due directory, ignora file e sottodirectory il cui nome corrisponda ad un modello contenuto in file.
−−expand−tabs
Espande i tabulatori nell’output per preservare l’allineamento di tabulazione nel file d’input.
−f |
Produce output che assomiglia più o meno ad uno scritto di ed ma con le modifiche nello stesso ordine in cui appaiono nel file. |
−F regexp
Nel formato a contesto o unificato, mostra, per ciascun blocco di differenze, alcune delle righe precedenti corrispondenti a regexp.
−−forward−ed
Produce output che assomiglia più o meno ad uno scritto di ed ma con le modifiche nello stesso ordine in cui appaiono nel file.
−h |
Quest’opzione, al momento, non ha nessun effetto; è presente per compatibilità Unix. | ||
−H |
Usa un procedimento euristico per gestire più rapidamente grossi file con numerose modifiche, piccole ma diffuse. |
−−horizon−lines=righe
Non elimina le ultime righe righe di prefisso comune né le prime righe di suffisso comune.
−i |
Considera allo stesso modo maiuscole e minuscole, ignorando ogni relativa differenza. |
−I regexp
Ignora ogni differenza che consista solo nella presenza o assenza di righe corrispondenti a regexp.
−−ifdef=nome
Produce output nel formato if-then-else, basandosi sulla condizione espressa dalla macro nome di preprocessore.
−−ignore−all−space
Ignora gli spazi bianchi mentre confronta delle righe.
−−ignore−blank−lines
Ignora ogni differenza che consista solo nella presenza o assenza di righe vuote.
−−ignore−case
Considera allo stesso modo maiuscole e minuscole, ignorando ogni relativa differenza.
−−ignore−matching−lines=regexp
Ignora ogni differenza che consista solo nella presenza o assenza di righe corrispondenti a regexp.
−−ignore−space−change
Ignora differenza nella quantità di spazi bianchi.
−−initial−tab
Usa un tabulatore invece di uno spazio davanti al contenuto di una riga in formato a contesto o unificato. In questo modo l’allineamento dei tabulatori nella riga assume un aspetto normale.
−l |
Fa passare l’output attraverso pr per impaginarlo. |
−L
etichetta
−−label=etichetta
Usa etichetta invece del nome del file nelle intestazioni di un formato a contesto o unificato.
−−left−column
Stampa solo quella di sinistra fra due colonne comuni nel formato lato a lato.
−−line−format=formato
Usa formato per scrivere tutte le righe di input nel formato if-then-else.
−−minimal
Usa un algoritmo diverso per trovare un, probabilmente, minore insieme di modifiche da fare. Questo rende diff più lento (a volte molto più lento).
−n |
Produce differenze in formato RCS; come −f, ma ogni comando specifica il numero di righe coinvolte. | ||
−N |
−−new−file
Confrontando due directory, se un file viene trovato solo in una, viene trattato come se esistesse, vuoto, nell’altra.
−−new−group−format=formato
Usa formato per scrivere un gruppo di righe prese dal solo secondo file nel formato if-then-else.
−−new−line−format=formato
Usa formato per scrivere una riga presa dal solo secondo file nel formato if-then-else.
−−old−group−format=formato
Usa formato per scrivere un gruppo di righe prese dal solo primo file nel formato if-then-else.
−−old−line−format=formato
Usa formato per scrivere una riga presa dal solo primo file nel formato if-then-else.
−p |
Mostra in quale funzione C appare ciascuna modifica. | ||
−P |
Confrontando due directory, se un file viene trovato solo in una, viene trattato come se esistesse, vuoto, nell’altra. |
−−paginate
Fa passare l’output attraverso pr per impaginarlo.
−q |
Riferisce solo se i file sono diversi, e non i particolari della differenza. | ||
−r |
Confrontando due directory, confronta ogni sottodirectory ricorsivamente. | ||
−−rcs |
Produce differenze in formato RCS; come −f, ma ogni comando specifica il numero di righe coinvolte. |
−−recursive
Confrontando due directory, confronta ogni sottodirectory ricorsivamente.
−−report−identical−files
−s |
Riferisce quando due file sono identici. |
−S file
Confrontando due directory, incomincia dal file file. Ciò viene usato per riprendere un confronto interrotto.
−−sdiff−merge−assist
Stampa informazioni aggiuntive per aiutare sdiff. sdiff usa quest’opzione invocando diff. L’opzione non dovrebbe essere invocata direttamente dall’utente.
−−show−c−function
Mostra in quale funzione C appare ciascuna modifica.
−−show−function−line=regexp
Nel formato a contesto o unificato, mostra, per ciascun blocco di differenze, alcune delle righe precedenti corrispondenti a regexp.
−−side−by−side
Usa il formato lato a lato.
−−speed−large−files
Usa un procedimento euristico per gestire più rapidamente grossi file con numerose modifiche, piccole ma diffuse.
−−starting−file=file
Confrontando due directory, incomincia dal file file. Ciò viene usato per riprendere un confronto interrotto.
−−suppress−common−lines
Non stampa le righe comuni nel formato lato a lato.
−t |
Espande i tabulatori nell’output per preservare l’allineamento di tabulazione nel file d’input. −T Usa un tabulatore invece di uno spazio davanti al contenuto di una riga in formato a contesto o unificato. In questo modo l’allineamento dei tabulatori nella riga assume un aspetto normale. | ||
−−text |
Tratta tutti i file come testo confrontandoli riga per riga, anche se non sembrano essere testo. | ||
−u |
Usa il formato unificato. |
−−unchanged−group−format=formato
Usa formato per scrivere un gruppo di righe comuni prese da entrambi i file, nel formato if-then-else.
−−unchanged−line−format=formato
Usa formato per scrivere una riga comune presa da entrambi i file, nel formato if-then-else.
−−unidirectional−new−file
Confrontando due directory, se un file viene trovato solo nella seconda viene trattato come se esistesse, vuoto, nella prima.
−U righe
−−unified[=righe]
Usa il formato unificato, mostrando righe (un intero) righe di contesto, oppure tre qualora righe non fosse stata specificata. Per operare correttamente, patch ha, di solito, bisogno di almeno due righe di contesto.
−v |
−−version
Stampa il numero di versione di diff.
−w |
Confrontando due righe ignora gli spazi bianchi. |
−W colonne
−−width=colonne
Usa una larghezza di colonne nel formato lato a lato.
−x modello
Confrontando due directory, ignora file e sottodirectory il cui nome corrisponda a modello.
−X file
Confrontando due directory, ignora file e sottodirectory il cui nome corrisponda ad un modello contenuto in file.
−y |
Usa il formato lato a lato. |
VEDERE ANCHE
cmp(1), comm(1), diff3(1), ed(1), patch(1), pr(1), sdiff(1).
DIAGNOSTICA
Uno stato di uscita di zero significa che non è stata trovata nessuna differenza, di uno che ne sono state trovate, di due che ci sono problemi.