Vergelijk de inhoud van twee mappen vanaf de opdrachtregel
Om de verschillende inhoud van twee mappen te vergelijken en op te sommen zonder de extra output die je krijgt via commando's zoals diff, kun je in plaats daarvan het comm-commando gebruiken. Om aan de slag te gaan, start u Terminal en typt u de volgende opdracht, waarbij u de mappaden naar wens aanpast:
comm -3 <(ls -1 map1) <(ls -1 map2)
De weergegeven uitvoer zijn de bestanden die in elke map anders zijn, met bestanden die uniek zijn voor map 1 links uitgelijnd en bestanden die uniek zijn voor map 2 rechts uitgelijnd.
Als u bijvoorbeeld de inhoud wilt vergelijken van een map met de naam "Pictures" en een map met de naam "OldPictures", beide opgeslagen in de downloadmap van de gebruiker, is de syntaxis als volgt:
comm -3 <(ls -1 ~/Downloads/Pictures) <(ls -1 ~/Downloads/OldPictures)
Uitvoer kan er als volgt uitzien:
$ comm -3 <(ls -1 ~/Downloads/Pictures) <(ls -1 ~/Downloads/OldPictures) Folder-1-File.PNG Folder -2-bestand kopie.PNG foto 1 kopie.PNG foto 3.PNG
Let op de inspringing, die aangeeft welke bestanden uniek zijn voor elke map. In het bovenstaande voorbeeld zijn het bestand "photo 1 copy.PNG" en "photo 3.png" rechts uitgelijnd, daarom zijn ze uniek voor de map OldPictures en Folder-1-File.PNG en Folder-2-File copy.PNG zijn uniek voor de originele map Afbeeldingen.
Dit werkt geweldig in Mac OS X, maar het is een generiek Unix-commando, dus je zou het ook bruikbaar moeten vinden in Linux en andere varianten. Als je toch compatibiliteitsproblemen tegenkomt, of als je deze opdracht onnodig ingewikkeld vindt, probeer dan diff te gebruiken om dezelfde functie uit te voeren.
Geweldige truc gevonden door @climagic op Twitter, @osxdaily staat daar ook op!