Scovare le differenze tra due directory


Vi è mai capitato di avere due cartelle da confrontare? Cioè sapere se un file è presente in entrambe o se ci sono files differenti?

diff

A me si…🙂

E per risolvere questo “problemino” utilizzo il solito comando diff ma con alcune opzioni, precisamente “-r –brief”:
diff -r --brief dir_a dir_b
L’output che viene prodotto è abbastanza semplice da interpretare, cioè verranno mostati i file presenti in dir_a che non lo sono in dir_b e viceversa, inoltre per ogni file presente in entrambe le cartelle, verranno mostrati quelli diversi:
Solo in dir_a: nuovo
Solo in dir_b: standard.1
I file dir_a/standard.2 e dir_b/standard.2 differiscono

spero possa tornarvi utile😉

12 thoughts on “Scovare le differenze tra due directory

  1. mk66 ha detto:

    Questa è telepatia!😀
    Proprio ieri mi sono trovato con un problema del genere (sono abbastanza casinista), cerco in Giro per trovare una soluzione rapida e indolore e, nel frattempo, provo a passare qua dal Maestro😉 e che trovo?
    Ben 2 soluzioni già pronte all’uso!!!😀
    Grazie a entrambi😀

  2. mk66 ha detto:

    Non è troppo, te lo assicuro..😉

    Ha funzionato perfettamente e ora ho un bell’elenco di file diversi dentro le due directory (in realtà le dir sono 4, e i confronti li ho fatti tra le prime 2, tra la 2 e la 3 e tra le ultime 2, quindi ho 3 report di differenze). Adesso devo solo trovare il modo di unire le varie directory in una sola senza combinare troppi disastri e senza fare le cose a manina, visto che si tratta di qualche centinaio di file.

    Probabilmente basterebbe fare direttamente uno spostamento da Nautilus, ma quando dice “unisco tutto” e “sostituisco tutto” non capisco in base a quali specifiche unisce e sostituisce “tutto” (in pratica, non vorrei che mi sostituisse la copia recente con quella meno recente o cose simili)
    Appena ho un pò di tempo, mi studierò bene il man di diff e di mv, e con le guide che mi hai indicato le volte precedenti, forse riuscirò a buttare giù qualcosa di buono.

  3. mk66 ha detto:

    Scusa l’OT, ma devo ringraziarti di nuovo e confermarti il titolo di “Maestro”😀

    Ieri sera ho avuto un problema con la partizione di swap, improvvisamente sparita (???), vado sul forum di Ubuntu per cercare una soluzione e l’ho trovata subito, ma indovina di chi era il post che mi ha fatto risolvere? 😉

  4. andrea ha detto:

    Molto interessante, ma io ho un problema più complicato😦
    Mi puoi aiutare?

    Le due cartelle hanno vissuto una vita indipendente. Quindi molti file hanno cambiato di nome e di sottodirectory.

    $ diff -r –brief dir_a dir_b |wc -l
    229

    Troppi falsi positivi!

    La mia idea era di preparare uno script che confrontasse effettivamente i file (tramite cmp o md5sum) delle due directory, uno per uno.
    Sai se c’è qualcosa di già pronto per l’uso?

  5. Che io sappia no, ma è molto interessante come problema e credo che quella che hai indicato sia la soluzione giusta, difficile forse da implementare ma comunque la più corretta😉

  6. fantasmino ha detto:

    Per il confronto posso consigliare anche l’ottimo programma “Meld” (con la “elle”!)
    sudo apt-get install meld
    che fa il confronto sia tra directory sia tra file, comodissimo. Il massimo è il confronto tra tre oggetti, ma in genere basta…

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...