Linux Commands · 5 min read · Sep 19, 2025

Linux dd Command Explained for Beginners (8 Examples)

Il comando dd è un’utilità potente utilizzata per la copia e la conversione di dati a basso livello sui sistemi Linux. Sta per “duplicatore di dati” ed è spesso impiegato per creare copie esatte di file, partizioni o interi dischi, rendendolo utile per attività come la creazione di backup, la clonazione di unità o la scrittura di immagini disco su supporti fisici. Il comando può copiare e convertire dati tra file o dispositivi, con opzioni per controllare la dimensione dei blocchi, saltare o cercare dati e persino applicare filtri come la compressione o lo scambio di byte. A causa della sua capacità di lavorare a un livello così fondamentale, dd deve essere utilizzato con cautela, poiché un uso errato può comportare perdita o corruzione dei dati.

In questo tutorial, discuteremo di come funziona lo strumento utilizzando alcuni esempi facili da comprendere. Ma prima di farlo, vale la pena menzionare che tutti gli esempi qui menzionati sono stati testati su Ubuntu 24.04.

Comando dd di Linux

In breve, il comando dd ti consente di copiare e convertire un file. Lo strumento offre alcuni operandi che puoi utilizzare per specificare che tipo di formattazione desideri. Ecco la sintassi generica del comando come descritta nella sua pagina man:

dd [OPERAND]...
dd OPTION

Creare un’unità USB avviabile da un file ISO utilizzando il comando dd

Un uso comune del comando dd in Linux è creare un’unità USB avviabile da un file ISO. Questo viene spesso fatto quando si prepara una chiavetta USB per installare un sistema operativo. Il comando apparirebbe in questo modo:

sudo dd if=/path/to/your.iso of=/dev/sdX bs=4M status=progress && sync

In questo esempio:

  • if=/path/to/your.iso specifica il file di input, che è l’immagine ISO.
  • of=/dev/sdX specifica il file di output, che è l’unità USB (sostituisci X con la lettera appropriata per il tuo dispositivo USB).
  • bs=4M imposta la dimensione del blocco a 4 megabyte, ottimizzando il processo di copia.
  • status=progress fornisce aggiornamenti in tempo reale sul progresso della copia.
  • sync assicura che tutti i dati siano scritti sulla USB prima che il processo sia completato.

Questo comando creerà un’unità USB avviabile che può essere utilizzata per installare il sistema operativo contenuto nel file ISO.

Domande Frequenti

I seguenti esempi di tipo Q&A dovrebbero darti una buona idea di come funziona il comando dd.

Q1. Come cambiare il caso del testo di input utilizzando il comando dd?

Supponiamo di avere alcune righe di testo scritte in minuscolo e la necessità di convertirle rapidamente in maiuscolo. Puoi utilizzare l’opzione della riga di comando conv (con ucase come suo valore).

Ecco un esempio:

Lo screenshot sopra mostra il comando così come il testo di input. La combinazione di tasti Ctrl+d è stata utilizzata per dire a dd che abbiamo finito di inserire l’input, e non appena ciò è stato fatto, il comando ha prodotto il seguente output:

Quindi puoi vedere che il testo di input è stato convertito da minuscolo a maiuscolo. Le ultime tre righe sono solo alcune statistiche relative all’operazione.

Nota: Allo stesso modo, puoi utilizzare il valore lcase per convertire il testo maiuscolo in minuscolo.

Q2. Come leggere e scrivere invece su file?

Abbiamo inserito il testo tramite stdin (input standard) nel primo esempio sopra. Tuttavia, puoi sempre utilizzare file di input e output. Per specificare i nomi dei file di input e output, utilizza le opzioni della riga di comando if e of.

Ad esempio, se desideri convertire il caso del testo in file1 e poi farlo scrivere in file2, puoi farlo nel seguente modo:

dd if=file1 of=file2 conv=ucase

Q3. Come saltare il testo durante la lettura dell’input?

Se vuoi, puoi chiedere a dd di saltare alcuni byte iniziali durante la lettura del testo di input. Questo può essere fatto utilizzando l’opzione skip, che richiede un valore numerico. Se, ad esempio, questo valore è ‘N’, allora dd salterà N blocchi di dimensione ibs all’inizio dell’input. Questo ci porta a ‘ibs’, un’altra opzione della riga di comando dd il cui valore specifica il numero di byte che lo strumento legge alla volta (il valore predefinito è 512).

Quindi, supponiamo di voler saltare i primi 4 byte di un file di input. Dovresti prima impostarlo a 4 e poi utilizzare 1 come valore di skip. Questo garantirà che lo strumento salti 1 blocco di 4 byte mentre legge il file di input.

Quindi puoi vedere che il testo hey, è stato saltato durante la lettura di file1 - ecco perché non è apparso in file2.

Q4. Come scambiare ogni coppia di byte di input nell’output?

Puoi anche utilizzare dd per scambiare ogni coppia di byte di input se c’è tale esigenza. Questo può essere ottenuto utilizzando swab come valore per l’opzione della riga di comando conv. Lo screenshot seguente renderà le cose più chiare:

Q5. Come far sì che dd funzioni solo quando il file di output non esiste già?

Se la necessità è che il comando dd non faccia nulla quando il file di output esiste già, allora il valore excl per l’opzione conv può imporre questa condizione.

Lo screenshot seguente mostra il caso d’uso in azione:

Q6. Come assicurarsi che il file di output venga aggiornato in modalità append?

Per impostazione predefinita, dd sovrascrive semplicemente il file di output (se esiste). Ma se vuoi che aggiunga il testo invece, utilizza il valore append per il FLAG oflag e notrunc per l’opzione conv.

Ad esempio:

dd if=file1 of=file3 oflag=append conv=notrunc

Ecco il comando sopra in azione:

Come assicurarsi che il file di output venga aggiornato in modalità append

Q7. Come far sì che dd non crei il file di output?

Se vuoi, puoi anche costringere il comando dd a non creare un file di output se il file fornito nel comando non esiste già. Questo può essere fatto utilizzando il valore nocreat dell’opzione della riga di comando conv.

Ad esempio:

Q8. Come controllare il livello di informazioni stampate su stderr?

Se vuoi, puoi anche limitare la quantità di informazioni che il comando stampa su stderr. Questo può essere fatto utilizzando l’opzione della riga di comando status. Ad esempio, se vuoi sopprimere tutto tranne i messaggi di errore, puoi passare il valore none a questa opzione della riga di comando:

dd if=file1 of=file3 status=none

Altri valori disponibili sono noxfer e progress. Ecco cosa dice la pagina man riguardo all’opzione status:

status=LEVEL
              Il  LEVEL  di informazioni da stampare su stderr; 'none' sopprime
              tutto tranne i messaggi di errore,  'noxfer'  sopprime  le  statistiche
              finali  del  trasferimento, 'progress' mostra statistiche di trasferimento
              periodiche

Conclusione

Gli esempi discussi in questo tutorial toccano solo la superficie quando si esplora cosa può fare il comando dd. Solo per darti un’idea, puoi utilizzare lo strumento per creare filesystem virtuali e backup di dischi rigidi o partizioni di sistema. Per ulteriori informazioni su dd, vai alla sua pagina man.

Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.