Linux Commands · 4 min read · Sep 17, 2025
Tutorial sul comando cmp di Linux per principianti (7 esempi)

Il comando cmp viene utilizzato nel sistema operativo Linux per confrontare due file byte per byte. Fornisce un output conciso delle differenze tra due file, consentendo all’utente di identificare facilmente le discrepanze tra di essi. Il comando cmp mostra quanti byte non corrispondenti si sono verificati a quali offset e fornisce un conteggio riassuntivo delle discrepanze. Con questo utile strumento, gli utenti possono controllare rapidamente se due file sono identici o meno.
In questo tutorial, discuteremo di ‘cmp’ attraverso esempi facili da capire. Ma prima di farlo, vale la pena menzionare che tutti gli esempi e le istruzioni menzionati in questo tutorial sono stati testati su Ubuntu 22.04.
comando cmp
Il comando ‘cmp’ ti consente di eseguire un confronto byte per byte di due file. L’utilità fornisce diverse funzionalità sotto forma di opzioni da riga di comando. In questo tutorial, discuteremo alcune opzioni chiave che ti daranno (da principiante) una buona idea di come funziona lo strumento.
1. Come confrontare due file usando cmp
Nella sua forma più semplice, puoi usare ‘cmp’ nel seguente modo:
cmp [nome-file1] [nome-file2]Come già accennato, lo strumento confronta due file byte per byte. Quando viene trovata una differenza, lo strumento si ferma e produce un output che indica in quale riga e byte si trova la differenza.
Ad esempio:
cmp file1.txt file2.txt
Come puoi vedere nello screenshot sopra, l’output indica chiaramente che i file differiscono al byte 20 nella riga 1.
2. Come far stampare a cmp i byte differenti
Se lo desideri, puoi anche far visualizzare a ‘cmp’ i byte differenti nel suo output. Questo può essere fatto utilizzando l’opzione da riga di comando -b.
cmp -b [file1] [file2]Ad esempio:
cmp -b file1.txt file2.txt
In questo caso, come puoi vedere nello screenshot sopra, la differenza è nel 17° byte, che è ‘l’ in file1.txt e ‘i’ in file2.txt. I valori 154 e 151 sono i valori per questi byte, rispettivamente.
3. Come far saltare a cmp alcuni byte iniziali da entrambi i file
Se lo desideri, puoi anche far saltare a ‘cmp’ un certo numero di byte iniziali da entrambi i file e poi confrontarli. Questo può essere fatto specificando il numero di byte come argomento per l’opzione da riga di comando -i.
cmp -i [byte-da-saltare] [file1] [file2]Ad esempio:
cmp -i 10 file1.txt file2.txtNota che in casi come questi (dove usi -i per saltare byte), il byte da cui inizia il confronto è trattato come byte numero zero.
Procedendo, lo strumento consente anche di saltare un numero diverso di byte da entrambi i file. Questo può essere fatto nel seguente modo:
cmp -i [byte-da-saltare-dal-primo-file] : [byte-da-saltare-dal-secondo-file] [file1] [file2]Ad esempio:
cmp -i 4:7 file1.txt file2.txt
4. Come far visualizzare a cmp la posizione (e il valore) dei byte per tutti i byte differenti
Puoi anche far stampare al comando ‘cmp’ la posizione dei byte e il valore dei byte per tutti i byte differenti. Questa funzionalità può essere accessibile utilizzando l’opzione da riga di comando -l.
cmp -l [file1] [file2]Ad esempio:
cmp -l file1.txt file2.txt
La prima colonna nell’output (esempio mostrato sopra) rappresenta la posizione (numero di byte) dei byte differenti. La seconda colonna rappresenta il valore del byte differente nel primo file, mentre la terza colonna rappresenta il valore del byte differente nel secondo file.
5. Come limitare il numero di byte da confrontare
Lo strumento consente anche di limitare il numero di byte che desideri confrontare - ad esempio, potresti voler confrontare al massimo 25 o 50 byte. Questo può essere fatto utilizzando l’opzione da riga di comando -n.
cmp -n [numero-di-byte-da-confrontare] [file1] [file2]Ad esempio:
cmp -n 25 file1.txt file2.txt6. Come visualizzare il misuratore di progresso mentre si utilizza il comando cmp
Durante il confronto di file di grandi dimensioni (o anche partizioni) utilizzando ‘cmp’, potresti voler vedere il progresso del confronto in corso. Questo può essere fatto utilizzando il comando ‘pv’ insieme al comando ‘cmp’. Ecco il modello di comando che puoi utilizzare:
$ pv [file1] | cmp -l [file2] > [file-output]Ad esempio:
$ pv file1.txt | cmp -l file3.txt > output.txtNota che il file ‘output.txt’ conterrà tutto l’output prodotto dal comando ‘cmp’. Il misuratore di progresso (che puoi vedere nello screenshot sopra) è prodotto dal comando ‘pv’.
Il comando ‘pv’ di solito non viene preinstallato in Linux (non lo è almeno su Ubuntu). Ma puoi facilmente installarlo utilizzando il seguente comando:
sudo apt-get install pv7. Come far sopprimere l’output a ‘cmp’
Lo strumento consente anche di sopprimere l’output che produce normalmente. Questo può essere fatto utilizzando l’opzione da riga di comando -s.
$ cmp -s [file1] [file2]Ad esempio:
$ cmp -s file1.txt file2.txtQuesta opzione può essere utile quando si utilizza l’utilità ‘cmp’ negli script. Ad esempio, a seconda che i file siano identici (cosa che si può capire accedendo al codice di uscita del comando), potresti voler visualizzare un messaggio personalizzato invece dell’output che lo strumento produce normalmente.
Conclusione
Abbiamo discusso la maggior parte delle opzioni del comando ‘cmp’ in questo articolo, quindi devi esercitarti con queste per iniziare a utilizzare lo strumento nel tuo lavoro quotidiano. In caso di dubbi o domande, fai riferimento alla pagina man di ‘cmp’.
Ricevi i nuovi post nella tua casella di posta.
Nessuno spam. Disiscriviti in qualsiasi momento.