Comparați conținutul a două directoare din linia de comandă

Anonim

Pentru a compara și enumera diferitele conținuturi ale două directoare fără rezultatul suplimentar pe care îl obțineți prin comenzi precum diff, puteți utiliza comanda comm în schimb. Pentru a începe, lansați Terminal și tastați următoarea comandă, ajustând căile directorului după caz:

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

Ieșirea listată va fi fișierele care sunt diferite în fiecare folder, cu fișierele unice pentru folderul 1 aliniate la stânga și fișierele unice pentru folderul 2 aliniate la dreapta.

De exemplu, pentru a compara conținutul unui folder numit „Imagini” și a unui folder numit „OldPictures”, ambele stocate în directorul de descărcări ale utilizatorului, sintaxa ar fi următoarea:

comm -3 <(ls -1 ~/Descărcări/Imagini) <(ls -1 ~/Descărcări/OldPictures)

Ieșirea poate arăta astfel:

$ comm -3 <(ls -1 ~/Descărcări/Imagini) <(ls -1 ~/Descărcări/OldPictures) Folder-1-File.PNG Folder -2-Fișier copie.PNG fotografie 1 copie.PNG fotografie 3.PNG

Notați indentarea, care vă arată ce fișiere sunt unice pentru fiecare folder. În exemplul de mai sus, fișierele „photo 1 copy.PNG” și „photo 3.png” sunt aliniate la dreapta, prin urmare sunt unice pentru directorul OldPictures și Folder-1-File.PNG și Folder-2-File copy.PNG sunt unice pentru folderul Imagini original.

Acest lucru funcționează excelent în Mac OS X, dar este o comandă Unix generică, așa că ar trebui să o găsiți utilizabilă și în Linux și în alte variante. Dacă întâmpinați probleme de compatibilitate sau găsiți că această comandă este inutil de complexă, încercați să utilizați diff pentru a efectua aceeași funcție.

Un truc grozav găsit de @climagic pe Twitter, @osxdaily este și acolo!

Comparați conținutul a două directoare din linia de comandă