Startpagina > Tekstverwerking en zoeken > cmp

cmp: Byte-voor-byte vergelijking van twee bestanden

Het `cmp`-commando vergelijkt twee bestanden byte voor byte en rapporteert de eerste locatie en regelnummer waar de bestanden verschillen. Het is nuttig voor het snel controleren van de overeenkomst van eenvoudige binaire of tekstbestanden.

Overzicht

cmp is een veel eenvoudiger vergelijkingstool dan het `diff`-commando. Terwijl `diff` gedetailleerde verschillen tussen bestanden regel voor regel toont, geeft `cmp` alleen aan 'dat de twee bestanden verschillen' en toont het de eerste locatie (byte-offset) en het regelnummer waar het verschil optreedt. Het is daarom zeer effectief wanneer u alleen wilt controleren of bestanden overeenkomen, bijvoorbeeld configuratiebestanden of binaire bestanden, zonder de volledige inhoud te hoeven bekijken.

Belangrijkste kenmerken

De belangrijkste kenmerken van het `cmp`-commando zijn:

  • Vergelijkt bestanden byte voor byte.
  • Toont alleen de eerste locatie en het regelnummer waar een verschil optreedt.
  • De uitvoer is eenvoudig, waardoor het geschikt is voor het controleren van bestandsgelijkheid in scripts.
  • Bijzonder nuttig voor het vergelijken van binaire bestanden.

Verschillen met diff

cmp en diff zijn beide tools voor bestandsvergelijking, maar verschillen in doel en uitvoermethode.

  • cmp: Byte-voor-byte vergelijking, rapporteert alleen het eerste verschil, geschikt voor binaire bestanden.
  • diff: Regel-voor-regel vergelijking, rapporteert alle verschillen gedetailleerd, geschikt voor tekstbestanden.

Belangrijkste opties

Veelgebruikte opties van het `cmp`-commando, gegroepeerd per doel.

1) Vergelijkingsopties

2) Hulp

Gegenereerde opdracht:

Probeer de opdrachtcombinaties.

Uitleg:

`cmp` Voer het commando uit.

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

Gebruiksvoorbeelden

Ontdek de functionaliteit van het `cmp`-commando aan de hand van diverse gebruiksvoorbeelden.

Twee tekstbestanden vergelijken

echo 'Hello World' > file1.txt
echo 'Hello World' > file2.txt
cmp file1.txt file2.txt

Wanneer twee identieke tekstbestanden worden vergeleken, wordt er niets uitgevoerd.

Twee verschillende tekstbestanden vergelijken

echo 'Hello World' > file1.txt
echo 'Hello, World' > file2.txt
cmp file1.txt file2.txt

Als de bestandsinhoud verschilt, toont het de bytepositie en het regelnummer van het eerste verschil.

Binaire bestanden vergelijken

cmp /bin/ls /bin/cmp

Controleert eenvoudig of binaire bestanden overeenkomen. Geen uitvoer betekent identieke bestanden.

Gebruik in scripts

cmp -s file1.txt file2.txt && echo 'Bestanden zijn identiek.' || echo 'Bestanden verschillen.'

Gebruik de exit-code van `cmp` om vertakkingslogica te implementeren op basis van de bestandsgelijkheid.

Exit-codes

cmp rapporteert vergelijkingsresultaten via exit-codes, wat handig is voor gebruik in scripts.

`cmp` exit-statuswaarden
Code Betekenis
0 Twee bestanden zijn identiek
1 Twee bestanden verschillen
2 Niet-toegankelijk bestand of optiefout

Installatie

cmp is standaard opgenomen in de meeste Linux-distributies als onderdeel van het `diffutils`-pakket. Een aparte installatie is niet nodig.

Tips & Aandachtspunten

Belangrijke overwegingen bij het gebruik van het `cmp`-commando.

Tips

  • cmp is geoptimaliseerd voor het vergelijken van binaire bestanden. Voor het bekijken van inhoudelijke verschillen in tekstbestanden is het aan te raden `diff` te gebruiken.
  • Het gebruik van de optie `cmp -s` onderdrukt de uitvoer, wat handig is voor gebruik in scripts met `if`-statements of `&&`/`||`-operatoren.
  • Byteposities beginnen bij 1, en de byte-waarden die door `cmp -l` worden weergegeven, zijn in octale notatie.

gerelateerde commando's

Functional vergelijkbare of vaak samen gebruikte commando's.


Hétzelfde categoriecommando