Startpagina > Bestands- en mapbeheer > diff-r

diff -r: Recursieve Vergelijking van Mappen

Het `diff` commando wordt gebruikt om verschillen tussen twee bestanden te vinden. Door de `-r` (of `--recursive`) optie toe te voegen, vergelijkt het recursief de inhoud van twee mappen en rapporteert gedetailleerd welke bestanden verschillend zijn of alleen in één van de mappen voorkomen. Dit is zeer nuttig voor het bijhouden en beheren van wijzigingen in codebases, configuratiebestanden of datamappen.

Overzicht

`diff -r` identificeert verschillen door de bestandsstructuren en de daarin opgenomen bestanden van twee mappen te vergelijken. Het rapporteert niet alleen verschillen in bestandsinhoud, maar ook bestanden of mappen die slechts in één van de locaties voorkomen.

Belangrijkste Kenmerken

  • Recursieve vergelijking van bestanden en submappen in twee mappen
  • Gedetailleerde rapportage van verschillen in bestandsinhoud
  • Identificatie van bestanden of mappen die slechts in één locatie voorkomen
  • Gebruik voor het bijhouden van wijzigingen in versiebeheersystemen (VCS)

Belangrijkste Opties

Van de diverse opties voor het `diff` commando, zijn dit de opties die vaak worden gebruikt in combinatie met de recursieve mapvergelijking (`-r`).

Vergelijkingsmethoden en Uitvoer

Gegenereerde opdracht:

Probeer de opdrachtcombinaties.

Uitleg:

`diff-r` Voer het commando uit.

Combineer deze opties en voer de opdracht virtueel uit met de AI.

Gebruiksvoorbeelden

Diverse voorbeelden van het gebruik van `diff -r` om de inhoud van twee mappen te vergelijken.

Recursieve Vergelijking van Twee Mappen

diff -r dir1 dir2

Vergelijkt alle bestanden en submappen van de mappen dir1 en dir2.

Recursieve Vergelijking (Beknopte Samenvatting)

diff -rq dir1 dir2

Lijst alleen de bestanden op die verschillen, en slaat de gedetailleerde verschillen in bestandsinhoud over.

Nieuwe Bestanden Ook Meenemen in Vergelijking

diff -rN dir1 dir2

Neemt bestanden die slechts in één map voorkomen mee in de vergelijking, door ze in de andere map als lege bestanden te behandelen.

Uitsluiten van Specifieke Bestanden/Mappen

diff -r --exclude='.git' --exclude='*.log' dir1 dir2

Sluit de `.git` map en bestanden met de extensie `.log` uit van de vergelijking.

Genereren van een Patchbestand in Uniforme Indeling

diff -ru dir1 dir2 > changes.patch

Toont de verschillen tussen twee mappen in uniforme indeling en slaat dit op in het bestand `changes.patch`. Dit bestand kan worden toegepast met het `patch` commando.

Tips & Aandachtspunten

`diff -r` is een krachtig hulpmiddel, maar bij het vergelijken van grote mappen is het belangrijk om aandacht te besteden aan prestaties en de interpretatie van de uitvoer.

Tips voor Efficiënt Gebruik

  • **Prestatieoptimalisatie**: Bij het vergelijken van grote mappen kan het gebruik van de `-q` (beknopte uitvoer) optie, die alleen aangeeft of bestanden verschillen in plaats van gedetailleerde verschillen, de vergelijkingssnelheid verhogen.
  • **Uitsluiten van Onnodige Bestanden**: Door de `--exclude` optie te gebruiken om bestanden of mappen die niet vergeleken hoeven te worden uit te sluiten (bv. versiebeheersystemen zoals `.git`, `.svn`, build artefacten zoals `*.o`, `*.pyc`, logbestanden zoals `*.log`), kunt u de vergelijkingssnelheid verhogen en de ruis in de uitvoer verminderen.
  • **Genereren van Patchbestanden**: Een patchbestand gegenereerd met het commando `diff -ru dir1 dir2 > changes.patch` kan eenvoudig worden toegepast op een andere map met het commando `patch -p1 < changes.patch`.
  • **Binaire Bestanden**: `diff` is primair geoptimaliseerd voor tekstbestanden. Om alleen verschillen in binaire bestanden te controleren, kunt u het `cmp` commando gebruiken, of `diff` zal aangeven dat het binaire bestanden betreft met een melding zoals 'Binary files ... differ'.

Hétzelfde categoriecommando