Vergelijk de inhoud van twee mappen van de commandoregel

Als u de verschillende inhoud van twee mappen wilt vergelijken en weergeven zonder de extra uitvoer die u krijgt via opdrachten als diff, kunt u in plaats hiervan de opdracht com gebruiken. Om te beginnen, start u Terminal en typt u de volgende opdracht, waarbij u de directorypaden naar wens aanpast:

comm -3 <(ls -1 folder1) <(ls -1 folder2)

De weergegeven uitvoer zijn de bestanden die verschillen in elke map, met bestanden die uniek zijn voor map1 die links uitlijnen en bestanden die uniek zijn voor map 2 die rechts uitlijnen.

Als u bijvoorbeeld de inhoud van een map met de naam "Afbeeldingen" en een map met de naam "Oude afbeeldingen", beide opgeslagen in de directory met gebruikersdownloads, wilt vergelijken, is de syntaxis als volgt:

comm -3 <(ls -1 ~/Downloads/Pictures) <(ls -1 ~/Downloads/OldPictures)

De uitvoer kan er als volgt uitzien:

$ comm -3 <(ls -1 ~/Downloads/Pictures) <(ls -1 ~/Downloads/OldPictures)
Folder-1-File.PNG
Folder-2-File copy.PNG
photo 1 copy.PNG
photo 3.PNG

Let op de inspringing, die u laat zien welke bestanden uniek zijn voor elke map. In het bovenstaande voorbeeld zijn het bestand "photo 1 copy.PNG" en "photo 3.png" recht uitgelijnd, daarom zijn ze uniek voor de map OldPictures en de map-1-bestand.PNG en map-2-bestand kopiëren. PNG zijn uniek voor de oorspronkelijke map Afbeeldingen.

Dit werkt prima in Mac OS X, maar het is een generiek unix-commando, dus je zou het ook in linux en andere varianten bruikbaar moeten kunnen vinden. Als u compatibiliteitsproblemen tegenkomt of als u vindt dat dit commando onnodig ingewikkeld is, probeer dan diff te gebruiken om dezelfde functie uit te voeren.

Geweldige truc gevonden door @climagic op Twitter, @osxdaily is daar ook!