Mappen vergelijken onder OS X Terminal
Wanneer je de inhoud van twee mappen met elkaar wilt vergelijken dan kun je daar OS X Terminal voor gebruiken. Onder OS X Terminal heb je namelijk de beschikking over het unix commando diff
.
Stel je hebt een foutje gemaakt met het kopiëren van mappen. Je hebt twee mappen met muziek, één met de naam ‘nieuwe muziek’ en één genaamd ‘oude muziek’. In beide mappen zit voor 90% de zelfde inhoud maar ook verschillende bestanden. Je kunt de mappen dan als volgt met het diff commando vergelijken.
diff -rq map1 map2 >> output.txt
Map1 en map2 zijn de mappen die vergeleken moeten worden en het resultaat wordt weggeschreven als een tekstbestand. Met de parameter -r geven we aan dat ook sub mappen moeten worden vergeleken. Met de toevoeging van -q parameter worden alleen de verschillen weergegeven.
Als we de gegevens van ons voorbeeld gebruiken dan wordt het commando:
diff -rq "oude muziek" "nieuwe muziek" >> resultaat.txt
In de map waar je het commando uitvoert wordt het tekstbestand ‘resultaat.txt’ aangemaakt. Wanneer je deze opent met teksteditor krijg je een soortgelijk overzicht:
Only in old music: blur - country house.mp3
Only in old music: greenday - american idiot.mp3
Only in new music: yukari fresh - horsey mary .mp3
Only in new music: robyn - dancing on my own.mp3
Natuurlijk kun je het tekstbestand ook bekijken in OS X Terminal, dit doe je met het commando:
more resultaat.txt
Wanneer je standaard OS X teksteditor applicatie wilt gebruiken:
open -e resultaat.txt
In het tekstbestand wordt aangeven wat de verschillen zijn tussen de beide mappen. Wanneer een bestand in beide mappen voorkomt dan wordt dit niet weergeven omdat we de -q parameter gebruiken, alleen de verschillen verschijnen in het tekstbestand.
Auteur | Richard IJzermans | |
Datum | 30/03/2012 09:25 | |
Categorie | macOS | |
Reacties
Van alles geprobeerd, het lukt niet. Krijg de melding “no such file or directory”. Wat klopt er niet aan deze code?
De mappen staan gewoon op het bureaublad. Maken spaties een verschil?
diff -rq “map1” “map2” >> resultaat.txt
Kan deze methode overigens ook gebruikt worden voor mappen op twee externe schijven?
GELUKT
met dank voor het meelezen
nu goodsync gedaan en dat loopt als een treintje
AAnrader!
HO wacht!
begin is niet goed gecopieerd want in terminal staat ntl
diff -rq kd etcetra
waarom lukt het mij niet !!!!!!!!!!
het lijkt zo veelbelovend
diff – kd_201201_xhd kd_201207 >> output.txt
krijg melding:
“No such file or directory” bij allebei de mappen terwijl ik ze voor mn neus heb
heb hoofd en kleine letters geprobeerd
Compare folders for mac of goodsync zijn denk ik een mogelijkheid.
Richard, ik probeer twee externe harde schijven te vergelijken en krijg deze melding: diff: /Volumes/1000 GB (LaCie)/.Trashes: Permission denied
Enig idee hoe ik jouw tip toch kan gebruiken?
Dit is serieus de handigste tip die ik in 8 manden Appletips voorbij heb zien komen :) Thanks!
Is er trouwens een app die deze functionaliteit uitbreid? (Bijvoorbeeld dezelfde bestanden met andere filename ook herkent)