Primerjaj vsebino dveh imenikov iz ukazne vrstice
Če želite primerjati in izpisati različne vsebine dveh imenikov brez dodatnega izpisa, ki ga dobite z ukazi, kot je diff, lahko namesto tega uporabite ukaz comm. Če želite začeti, zaženite Terminal in vnesite naslednji ukaz ter ustrezno prilagodite poti imenika:
comm -3 <(ls -1 folder1) <(ls -1 folder2)
Naveden izhod bodo datoteke, ki so različne v vsaki mapi, pri čemer bodo datoteke, edinstvene za mapo 1, poravnane levo, datoteke, edinstvene za mapo 2, pa bodo poravnane desno.
Na primer, če želite primerjati vsebino mape z imenom »Pictures« in mape z imenom »OldPictures«, obe shranjeni v imeniku za prenose uporabnikov, bi bila sintaksa naslednja:
comm -3 <(ls -1 ~/Prenosi/Slike) <(ls -1 ~/Prenosi/Stare slike)
Izhod je lahko videti takole:
$ comm -3 <(ls -1 ~/Prenosi/Slike) <(ls -1 ~/Prenosi/Stare slike) Mapa-1-Datoteka.PNG Mapa -2-kopija datoteke.PNG fotografija 1 kopija.PNG fotografija 3.PNG
Upoštevajte zamik, ki vam pokaže, katere datoteke so edinstvene za vsako mapo. V zgornjem primeru sta datoteki »photo 1 copy.PNG« in »photo 3.png« poravnani desno, zato sta edinstveni za imenik OldPictures in Folder-1-File.PNG in kopija datoteke Folder-2.PNG sta edinstvena za izvirno mapo s slikami.
To odlično deluje v Mac OS X, vendar je splošen ukaz Unix, zato bi ga morali uporabiti tudi v Linuxu in drugih različicah. Če naletite na težave z združljivostjo ali ugotovite, da je ta ukaz po nepotrebnem zapleten, poskusite uporabiti diff za izvedbo iste funkcije.
Odličen trik, ki ga je našel @climagic na Twitterju, tam je tudi @osxdaili!