Diff è uno strumento da riga di comando per sistemi Unix che ti consente di confrontare due file o directory e vedere le differenze tra loro. È ideale per confrontare versioni vecchie e nuove di file per vedere cosa è cambiato. In questo articolo ti mostriamo come puoi utilizzarlodiffper confrontare facilmente i file in Linux.
Mancia: impara come.
Confronto di file con diff
- Apri una finestra di terminale.
- Tipo
diffe i percorsi dei due file che desideri confrontare. In questo caso, sto confrontando due piccoli programmi C sul mio desktop utilizzando il seguente comando:
diff ~/Desktop/hello.c ~/Desktop/hello-1.c
- PremereEntraper inviare il comando. La visualizzazione risultante mostrerà tutte le diverse linee tra i file. I numeri di riga confrontati verranno visualizzati come "1c1", il che significa che la prima riga è stata modificata e sono state rilevate le seguenti differenze.

- Per vedere una vista affiancata dei file e delle relative differenze, utilizzare il file
-ybandiera dopodiff. Per esempio:
diff -y ~/Desktop/hello.c ~/Desktop/hello-1.c
Qualsiasi linea con il simbolo di una barra verticale (|) è una linea con una differenza. Assicurati solo di espandere prima la finestra del terminale, altrimenti potresti avere difficoltà a vedere il display.

Buono a sapersi:imparare come manipolare l'output di un programma tramite.
Confronto di file con Meld
La funzionalità didiffè possibile accedere anche tramiteFondere, una GUI perdiff. Considerando che l'interfaccia utente di diff può essere difficile da gestire, Meld è uno strumento utile.
- Installa Meld dalla riga di comando aprendo il terminale e digitando:
sudo apt -y install meldO
sudo dnf -y install meldper distribuzioni basate su RPM.
Questo inizializzerà il gestore pacchetti apt e inizierà l'installazione di Meld. Si noti che il-yflag dirà automaticamente "sì" a qualsiasi richiesta; rimuovilo se preferisci confermare manualmente tali richieste.

- Inserisci la password dell'amministratore quando richiesto. Quando viene visualizzato nuovamente il prompt dei comandi, l'installazione è terminata ed è possibile aprire Meld.

- Quando apri Meld, vedrai tre opzioni: confronto file, confronto directory e visualizzazione controllo versione. Fare clic su "File".

- Appariranno due menu a discesa, entrambi con la scritta "(Nessuno)." Fare clic su uno per selezionare un file per il confronto.

- Fare clic sull'altro menu a discesa per selezionare un secondo file per il confronto.

- Fare clic sul pulsante "Confronta".

- La finestra successiva riassume le eventuali differenze riscontrate tra due file. I caratteri rossi sono differenze e lo sfondo blu indica che c'è una differenza in quella riga. Uno sfondo verde indica che esiste una riga in un file ma non nell'altro.

- Per navigare tra le differenze, fare clic sui pulsanti su e giù nella barra dei menu. Puoi anche fare clic direttamente nel documento con il mouse.

Buono a sapersi: Se preferisci utilizzare gli strumenti online per confrontare i file, questi sono alcuni dei.
Manipolazione dei file in Meld
Oltre a effettuare confronti, Meld consente di modificare i file confrontati. Meld continuerà ad analizzare le modifiche del documento man mano che modifichi una delle due versioni e puoi premereCtrl+CONin qualsiasi momento per annullare le modifiche.
- Per copiare le modifiche da un file a un altro, fai clic sulle piccole frecce nere tra le modifiche. Facendo clic sulla freccia sul lato sinistro, ad esempio, verrà utilizzata la riga del documento di sinistra per sovrascrivere il documento a destra.

- È inoltre possibile inserire righe nei documenti senza sovrascriverle. Se tieni premuto ilCtrltasto, vedrai le frecce dell'ultimo passaggio trasformarsi in segni più. Fare clic sull'icona per aprire una piccola finestra di dialogo in cui è possibile scegliere dove inserire una nuova riga.

- Infine, digita direttamente nel documento. Basta inserire il cursore come faresti normalmente e iniziare a digitare.
- Una volta terminate le modifiche, fai clic sul pulsante "Salva" per salvare i file.

Creazione di file diff utilizzando Meld e diff
Oltre a mostrare le differenze tra due file, puoi anche utilizzare Meld per creare "file diff". Si tratta di piccole porzioni di testo che contengono istruzioni su come applicare le modifiche da una versione del file a un'altra. Ciò è utile se desideri distribuire rapidamente gli aggiornamenti del codice senza ricondividere l'intero archivio di origine.
- Apri i due file che vuoi confrontare.

- Fai clic sul menu Opzioni nell'angolo in alto a destra della finestra.

- Seleziona il sottomenu “Confronto”.

- Fai clic sull'opzione secondaria "Formatta come patch".

- Si aprirà una piccola finestra in cui Meld stamperà l'intero file diff tra i due file. A questo punto, puoi copiare questo testo negli appunti o salvarlo in un file. Per fare quest'ultimo, fare clic sul pulsante "Salva patch".

Sebbene la creazione di file diff all'interno di Meld sia semplice e diretta, ci sono casi in cui potrebbe non essere possibile accedere a una GUI durante la modifica del codice. Per questo puoi anche usare il filediffprogramma per generare un file diff.
- Apri un terminale e controlla se ci sono differenze tra i due file:
diff hello.c hello-1.c
- Crea un semplice file diff utilizzando il file
-cbandiera:
diff -c hello.c hello-1.c > hello.diff
- Facoltativamente, utilizzare il file
-uopzione che combina i due flussi di testo in un unico blocco diff unificato. Questo può essere utile se stai modificando molto codice e desideri risparmiare spazio su disco:
diff -u hello.c hello-1.c > hello.diff
Utilizzo di file diff per applicare patch al codice sorgente
Come discusso in precedenza, un file diff ti consente di creare un riepilogo facilmente condivisibile delle modifiche al tuo codice sorgente. Tuttavia, diff stesso non può applicarli ai file esistenti. Per fare ciò, usa il programma complementare di diff,patch.
- Determina il codice sorgente originale che il file diff sta tentando di modificare:
cat hello.diff | sed 1q
- Crea un backup del tuo codice sorgente originale:
cp hello.c hello.c.old- Esegui il programma patch con il file originale sul primo argomento e il file diff sul secondo:
patch hello.c hello.diff
È importante notare che un file diff può contenere anche modifiche che si estendono su più file. Applicalo posizionando tutti i file necessari per l'aggiornamento in una singola directory ed eseguendopatch < multi-file.diff.
- Controlla se il programma patch ha aggiornato correttamente il tuo file sorgente confrontandolo con il tuo backup:
diff -y hello.c hello.c.old
PER TUA INFORMAZIONE:Git è un potente programma di controllo della versione multipiattaforma. Scopri come usarlo.
Domande frequenti
È possibile patchare un file più volte?
SÌ. Tuttavia, è importante notare che il valore del numero di riga all'interno di un file diff è statico. Ad esempio, l'applicazione di una differenza che aggiunge cinque righe di codice alla riga 1 modificherà l'intero file di cinque righe. Sebbene gli strumenti moderni possano compensare le modifiche derivanti da singole differenze, applicarne più di una può creare conflitti di codice non necessari.
Un file diff è simile a una patch Git?
SÌ. Sia diff che Git utilizzano un tipo di formato simile per le patch del codice. Di conseguenza, puoi scambiare le due utilità quando applichi gli aggiornamenti al tuo codice sorgente. Ad esempio, correregit apply hello.diffequivale a correrepatch < hello.diff.
Puoi usare Meld con un programma di controllo della versione come Git?
SÌ. Una delle caratteristiche più potenti di Meld è che può funzionare in modo trasparente con qualsiasi programma di controllo della versione. Ciò ti dà la possibilità di interagire facilmente con i tuoi repository al di fuori dell'interfaccia del terminale.
Per fare ciò, premereCtrl+N, quindi fare clic sul pulsante "Vista controllo versione". Successivamente, fai clic sulla casella a discesa sotto di essa e seleziona "Altro". Verrà visualizzata una piccola finestra in cui puoi vedere e caricare il tuo repository Git.
Credito immagine:Unsplash. Tutti gli screenshot sono di Ramces Red.
