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.
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.