Come usare i file Diff in Linux
Diff è uno strumento a riga di comando per i sistemi Unix che 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 usare diff
per confrontare facilmente i file in Linux.
Confronto di file con diff
- Apri una finestra di terminale.
- Digita
diff
e i percorsi di due file che desideri confrontare. In questo caso, sto confrontando due piccoli programmi C sul mio desktop usando il seguente comando:
diff ~/Desktop/hello.c ~/Desktop/hello-1.c
- Premere Enterper inviare il comando. Il display risultante ti mostrerà tutte le diverse righe tra i file. I numeri di riga confrontati verranno visualizzati come “1c1”, a indicare che la prima riga è stata modificata e sono state rilevate le seguenti differenze.
- Per vedere una vista affiancata dei file e delle loro differenze, usa il
-y
flag dopodiff
. Per esempio:
diff -y ~/Desktop/hello.c ~/Desktop/hello-1.c
Qualsiasi linea con un simbolo pipe ( |
) è una linea con una differenza. Assicurati solo di espandere prima la finestra del terminale, altrimenti potresti avere difficoltà a vedere il display.
Confronto di file con Meld
diff
È possibile accedere alla funzionalità di anche tramite Meld , una GUI per diff
. 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 meld
O
sudo dnf -y install meld
per distribuzioni basate su RPM.
Questo inizializzerà il gestore di pacchetti apt e inizierà l’installazione di Meld. Si noti che il -y
flag dirà automaticamente “sì” a qualsiasi richiesta; rimuovilo se preferisci confermare le richieste manualmente.
- Inserisci la tua password di amministratore quando richiesto. Quando vedi di nuovo il prompt dei comandi, l’installazione è terminata e Meld può essere aperto.
- 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, fai clic sui pulsanti su e giù nella barra dei menu. Puoi anche fare clic direttamente nel documento con il mouse.
Manipolare i file in Meld
Oltre a fare confronti, Meld ti consente di modificare i file confrontati. Meld continuerà ad analizzare il documento per le modifiche mentre modifichi una delle due versioni e puoi premere Ctrl+ Zin qualsiasi momento per annullare le modifiche.
- Per copiare le modifiche da un file all’altro, fai clic sulle piccole frecce nere tra le modifiche. Facendo clic sulla freccia a sinistra, ad esempio, verrà utilizzata la riga del documento a sinistra per sovrascrivere il documento a destra.
- Le linee possono anche essere inserite nei documenti senza sovrascrivere. Se tieni premuto il Ctrltasto, 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 tuo documento. Basta inserire il cursore come faresti normalmente e iniziare a digitare.
- Dopo aver apportato 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 usare Meld per creare “file diff”. Si tratta di piccole parti di testo che contengono istruzioni su come applicare le modifiche da una versione del file a un’altra. Ciò è utile se si desidera distribuire rapidamente gli aggiornamenti del codice senza ricondividere l’intero archivio di origine.
- Apri i due file che desideri confrontare.
- Fai clic sul menu Opzioni nell’angolo in alto a destra della finestra.
- Selezionare il sottomenu “Confronto”.
- Fai clic sull’opzione secondaria “Formatta come patch”.
- Questo aprirà una piccola finestra in cui Meld stamperà l’intero file diff tra i tuoi due file. A questo punto, puoi copiare questo testo negli appunti o salvarlo in un file. Per fare quest’ultimo, fai 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 utilizzare il diff
programma 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 usando il
-c
flag:
diff -c hello.c hello-1.c > hello.diff
- Facoltativamente, utilizza l’
-u
opzione che combina i due flussi di testo in un unico blocco diff unificato. Questo può essere utile se stai modificando molto codice e vuoi risparmiare spazio su disco:
diff -u hello.c hello-1.c > hello.diff
Utilizzo di file diff per correggere il codice sorgente
Come discusso in precedenza, un file diff consente di creare un riepilogo facilmente condivisibile delle modifiche apportate al codice sorgente. Tuttavia, diff stesso non può applicarli ai file esistenti. Per farlo, usa il programma compagno 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
- Eseguire 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ò anche contenere modifiche che si estendono su più file. Applicalo posizionando tutti i file necessari per l’aggiornamento in una singola directory ed eseguendo patch < multi-file.diff
.
- Controlla se il programma di patch ha aggiornato correttamente il tuo file sorgente confrontandolo con il tuo backup:
diff -y hello.c hello.c.old
Cordiali saluti: Git è un potente programma di controllo della versione multipiattaforma. Scopri come puoi usarlo per gestire i tuoi repository di codice sorgente in Linux.
Domande frequenti
È possibile correggere 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 un diff che aggiunge cinque righe di codice alla riga 1 regolerà l’intero file di cinque righe. Mentre gli strumenti moderni possono compensare le modifiche da singole differenze, l’applicazione di più di una può creare conflitti di codice non necessari.
Un file diff è simile a una patch Git?
SÌ. Sia diff che Git usano un tipo di formato simile per le loro patch di codice. Di conseguenza, puoi scambiare le due utilità quando applichi gli aggiornamenti al tuo codice sorgente. Ad esempio, correre git apply hello.diff
equivale a correre patch < 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ò, premere Ctrl+ N, quindi fare clic sul pulsante “Vista controllo versione”. Quindi, fai clic sulla casella a discesa sotto di essa e seleziona “Altro”. Questo farà apparire una piccola finestra in cui puoi vedere e caricare il tuo repository Git.
Credito immagine: Unsplash . Tutti gli screenshot di Ramces Red.
Lascia un commento