Comparare files e directories su Linux con diff e comm

Mattepuffo's logo
Comparare files e directories su Linux con diff e comm

Comparare files e directories su Linux con diff e comm

I comandi che vediamo oggi li useremo per comparare file e directory in Linux usando il terminale.

Il comando diff è molto conosciuto in ambito sysadmin; comm non lo avevo mai sentito.

Partiamo da diff:

$ diff Author1.java Author2.java 
6d5
<     private String name;
14,21d12
<     }
< 
<     public String getName() {
<         return name;
<     }
< 
<     public void setName(String name) {
<         this.name = name;

$ diff Author2.java Author1.java 
5a6
>     private String name;
12a14,21
>     }
> 
>     public String getName() {
>         return name;
>     }
> 
>     public void setName(String name) {
>         this.name = name;

I simboli < e > ci mostrano le righe differenziate a seconda di quale prendiamo per primo.

Però possiamo anche visualizzare in maniera più comoda:

$ diff -y Author1.java Author2.java 

Non vi posto l'output perchè troppo grande, ma in sostanza mostra entrambi i contenuti dei files per intero, ed anche affiancati.

Per quanto riguarda comm, vi posto due esempi:

$ comm Author1.java Author2.java 
$ comm -12 Author1.java Author2.java 

L'output sarà un più complicato da vedere; in effetti adesso capisco perchè in genere si usa diff.

Per quanto riguarda le cartelle:

$ comm <(ls cartella1) <(ls cartella2)
$ diff <(ls -a cartella1) <(ls -a cartella2)

Enjoy!


Condividi

Commentami!