Confronta due directory su Mac con diff

Se vuoi vedere la differenza tra due cartelle su un Mac, o confrontare due contenuti di directory, puoi farlo facilmente con l'aiuto del potente comando diff.

Questo tutorial ti mostrerà come confrontare due directory e il contenuto di quelle directory usando il Terminale. Questo approccio alla riga di comando produrrà un file contenente le differenze precise mostrate tra due cartelle di destinazione.

Per ottenere questo confronto, utilizzeremo lo strumento da riga di comando 'diff', diff è disponibile su tutti i Mac, insieme a linux e altri sistemi operativi unix, quindi questa è effettivamente una soluzione multipiattaforma per confrontare le directory. Diff è abbastanza semplice da usare per confrontare facilmente il contenuto di due directory, basta seguire la sintassi dettagliata di seguito.

Come confrontare i contenuti di due directory con diff

Per iniziare, avvia il Terminale in Mac OS (disponibile in / Applicazioni / Utility /) e quindi usa la seguente sintassi del comando:

diff -rq directory1 directory2

Hit return quando hai specificato le directory appropriate da confrontare. Esegue il comando diff confrontando directory1 e directory2 (se si ha una cartella con uno spazio nel nome del file, è sufficiente inserirla tra virgolette in questo modo: "cartella uno"). Stiamo usando il flag -rq perché -r significa che è ricorsivo includere le sottodirectory e -q semplifica l'output del comando solo alle differenze mostrate.

L'output di esempio del comando potrebbe essere simile al seguente:

$diff -rq directory1 directory2

Solo nella directory1: example221.txt

Solo nella directory1: SuperSecretDifferentFile.rtf

Solo in directory2: AmazingScript.py

Solo in directory2: MyFavoriteSong.mp3

Solo in directory2: MyFavoriteSpecialMovie.mp4

Puoi anche fare un ulteriore passo avanti e reindirizzare l'output di quel comando in un file, diciamo che si chiama differences.txt:

diff -rq directory1 directory2 >> differences.txt

Ecco un esempio e come apparirà la stampa effettiva. Diciamo che stiamo confrontando le cartelle denominate "vecchia musica" e "nuova musica" e vogliamo che l'output del comando mostri la differenza tra queste due directory nel file "musicfolders.txt", quindi la seguente sintassi del comando verrebbe utilizzata:

diff -rq "old music" "new music" >> musicfolders.txt

Ora guarda nella directory di lavoro attuale per il file appena creato tramite l'output del comando diff, in questo caso il file è musicfolders.txt e il contenuto può essere visualizzato in qualsiasi editor di testo, riga di comando o altro. Aprendo il file di testo vedrai qualcosa di simile a questo:

Only in old music: song1.mp3
Only in old music: song2.mp3
Only in old music: song3.mp3
Only in new music: instrumental1.mp3
Only in new music: instrumental1.mp3

Se si desidera visualizzare il file dalla riga di comando, provare:

more musicfolders.txt

Altrimenti basta navigare nella directory che lo contiene e aprirlo nel tuo editor di testo preferito.

Se preferisci non creare un file di testo con le modifiche, basta disattivare il reindirizzamento dell'output del comando. Potresti voler reindirizzare l'output a qualcosa di simile a "more" per rendere più semplice la scansione:

diff -rq "old music" "new music" | more

Il comando diff è abbastanza potente e ci sono molte altre opzioni disponibili con esso, usa il comando diff uomo per ottenere tutti i dettagli su come usare diff e la miriade di funzioni disponibili.

Vale la pena ricordare ancora una volta che questo comando funzionerà su Mac OS X - tutte le versioni - e su gran parte dei sistemi operativi basati su Unix.