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!
linux diff comm
Commentami!