diff în Linux / Bash

Procesare și filtrare text POSIX / GNU Diffutils

Compară două fișiere linie cu linie și evidențiază diferențele dintre ele.

Sintaxă comandă
diff [opțiuni] fișier1 fișier2

Ce face diff

Comanda diff determină ce modificări trebuie aplicate primului fișier pentru a deveni identic cu al doilea. Reprezintă fundația sistemelor de control al versiunilor precum Git.

Formatul unificat (diff -u) este cel mai popular: afișează câteva linii de context, marcând rândurile șterse cu - și cele adăugate cu +.

Opțiuni și argumente

Opțiune / Parametru Descriere
-u, -U NUMĂR Afișează diferențele în format unificat (unified diff) cu linii de context.
-w, --ignore-all-space Ignoră toate spațiile albe la comparare.
-r, --recursive Compară recursiv directoare întregi și subdirectoarele lor.
-q, --brief Raportează doar dacă fișierele diferă sau nu, fără a afișa conținutul.

Exemple

Exemplul 1: Compararea a două versiuni de configurare

Identificăm modificările de parametri.

                    echo -e "PORT=80
DEBUG=false" > v1.conf
                    echo -e "PORT=443
DEBUG=false" > v2.conf
                    diff -u v1.conf v2.conf | grep -E '^(\+|\-)[^\+\-]'

Rezultat

-PORT=80
+PORT=443

Greșeli frecvente

  • Confuzia privind direcția modificărilor: primul fișier este baza, iar al doilea este cel nou.