Compara el contingut de dos directoris des de la línia d'ordres

Anonim

Per comparar i llistar els diferents continguts de dos directoris sense la sortida addicional que obteniu mitjançant ordres com diff, podeu utilitzar l'ordre comm. Per començar, inicieu Terminal i escriviu l'ordre següent, ajustant els camins del directori segons correspongui:

comm -3 <(ls -1 carpeta1) <(ls -1 carpeta2)

La sortida indicada seran els fitxers que són diferents a cada carpeta, amb els fitxers exclusius de la carpeta 1 alineats a l'esquerra i els fitxers únics de la carpeta 2 alineats a la dreta.

Per exemple, per comparar el contingut d'una carpeta anomenada “Imatges” i una carpeta anomenada “Imatges antigues”, totes dues emmagatzemades al directori de descàrregues de l'usuari, la sintaxi seria la següent:

comm -3 <(ls -1 ~/Descàrregues/Imatges) <(ls -1 ~/Descàrregues/Imatges antigues)

La sortida pot semblar a la següent:

$ comm -3 <(ls -1 ~/Downloads/Pictures) <(ls -1 ~/Downloads/OldPictures) Folder-1-File.PNG Folder -2-Fitxer còpia.PNG foto 1 còpia.PNG foto 3.PNG

Anoteu el sagnat, que us mostra quins fitxers són únics per a cada carpeta. A l'exemple anterior, els fitxers "foto 1 còpia.PNG" i "foto 3.png" estan alineats a la dreta, per tant, són exclusius del directori OldPictures i de la Carpeta-1-Fitxer.PNG i la còpia de fitxers de la carpeta 2. PNG són únics de la carpeta d'imatges original.

Això funciona molt bé a Mac OS X, però és una ordre Unix genèrica, per la qual cosa també l'hauries de trobar utilitzable a Linux i altres variants. Si teniu problemes de compatibilitat o trobeu que aquesta ordre és innecessàriament complexa, proveu d'utilitzar diff per realitzar la mateixa funció.

Un gran truc trobat per @climagic a Twitter, @osxdaily també hi és!

Compara el contingut de dos directoris des de la línia d'ordres