dd (Unix)
dd è un comando dei sistemi operativi Unix e Unix-like, e più in generale dei sistemi POSIX[1], che copia dei dati in blocchi, opzionalmente effettuando conversioni.
Caratteristiche
Pur potendo essere usato anche per copiare o convertire dei file regolari, dd è tipicamente usato con i dispositivi a blocchi. Può essere usato per creare file sparsi.
Sintassi
La sintassi generale è:
dd [parametri …]
A differenza degli altri comandi dei sistemi Unix, i parametri sono tutti nella forma nome=valore (senza spazi né prima né dopo il segno "=") e possono essere specificati in qualunque ordine.
Parametri
Tra i parametri principali vi sono:
- if=nome_file
- Legge i dati dal file nome_file invece che dallo standard input.
- of=nome_file
- Scrive i dati sul file nome_file invece che sullo standard output.
- bs=dimensioni
- Legge e scrive dati in blocchi delle dimensioni specificate.
- ibs=dimensioni
- Legge i dati in blocchi delle dimensioni specificate.
- obs=dimensioni
- Scrive i dati in blocchi delle dimensioni specificate.
- count=numero_blocchi
- Copia solo il numero specificato di blocchi.
- skip=numero_blocchi
- Legge e scarta il numero di blocchi indicato prima di iniziare a copiare.
- seek=numero_blocchi
- Avanza del numero di blocchi indicato prima di iniziare a scrivere.
- conv=conversione[,conversione …]
- Effettua durante la copia le conversioni elencate (separate da virgole). Tra le principali conversioni vi sono:
Le dimensioni dei blocchi sono specificate in numero di byte (es. 42), oppure possono essere specificate con altre unità di misura specificando dei suffissi:
- come numero di blocchi da 512 byte specificando il suffisso b (es. 33b);
- come numero di KiB specificando il suffisso k (es. 1024k);
La versione GNU di dd ha supporto per ulteriori suffissi, conversioni e parametri[2] ed è possibile inviare il segnale SIGUSR1 ad un processo dd in esecuzione per fargli mostrare sullo standard error la quantità di dati fino a quel momento copiati senza interromperlo.
Esempi di utilizzo
Effettua una copia di una partizione del disco /dev/hda1 nel file backup_partizione_1 (nei sistemi GNU/Linux):
dd if=/dev/hda1 of=backup_partizione_1 bs=1024k
Prealloca un file chiamato dati da 20 MiB:
dd if=/dev/zero of=dati bs=1024k count=20
Effettua una copia dei dati che risiedono sul dispositivo /dev/sr0, che nei sistemi GNU/Linux corrisponde al primo lettore CD/DVD SCSI, pertanto recuperando di fatto da esso l'immagine .iso di un CD/DVD:
dd if=/dev/sr0 of=file.iso
Note
- ^ (EN) dd, in The Open Group Base Specifications Issue 6 IEEE Std 1003.1, 2004 Edition. URL consultato il 17-05-2008.
- ^ * (EN) dd: Convert and copy a file, in GNU Coreutils manual. URL consultato il 17-05-2008.
Voci correlate
- cp (Unix) – Copia file e directory.
- Dispositivo a blocchi – Tipo di file spesso usato come sorgente o destinazione per dd.
- File sparso