Accade spesso che diverse persone che hanno accesso ad un file ne effettuino una copia e la modifichino. Il comando diff permette di identificare le differenze esistenti tra due versioni di un file ASCII. Il comando:
$ diff primo_file secondo_file |
confronta riga per riga primo_file e secondo_file cercando eventuali differenze. Quando il programma individua una o più righe diverse, esso determina se la differenza riscontrata è il risultato di un'aggiunta, di una cancellazione o di una modifica, e individua il numero di righe interessate. L'output del comando indica i numeri delle righe che presentano differenze in ciascuno dei file, seguito dalle parti di testo che risultano diverse.
Se la differenza è il risultato di un'aggiunta, diff visualizza una riga nella forma seguente:
p[,p] a s[,s]
in cui p è il numero di una riga di primo_file e s è il numero di una riga di secondo_file.
Se la differenza è il risultato di una cancellazione, diff utilizza una d al posto della a; se è il risultato di una modifica, diff utilizza una c.
Le righe diverse dei due file seguono immediatamente i numeri di riga. Il testo di primo_file è preceduto da un simbolo di minore (<), mentre il testo di secondo_file è preceduto da un simbolo di maggiore (>).
Questo esempio mostra due file e l'output ottenuto con il comando diff:
Se i file confrontati sono identici, il comando diff non genera alcun output.
Il comando diff(1) dispone di molte altre opzioni oltre a quelle descritte. Per maggiori informazioni, vedere man Pages(1): User Commands.
Per individuare le differenze fra tre versioni di un file, usare il comando diff3 come segue:
$ diff3 file1 file2 file3 |
diff3 confronta tre versioni di un file e visualizza le parti di testo differenti marcandole con i seguenti codici:
==== tutti i file sono diversi
====1 file1 è diverso
====2 file2 è diverso
====3 file3 è diverso
Se occorre confrontare file di grandi dimensioni, è consigliabile usare il comando bdiff anziché diff. La sintassi dei due comandi è la stessa:
$ bdiff primo_file secondo_file |
Si consiglia di usare bdiff al posto di diff per file più lunghi di 3500 righe.