dd (Unix)

Da Wikipedia, l'enciclopedia libera.

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[modifica | modifica sorgente]

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[modifica | modifica sorgente]

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[modifica | modifica sorgente]

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:
ascii
Converte dalla codifica EBCDIC alla codifica ASCII.
ebcdic
Converte dalla codifica ASCII alla codifica EBCDIC.
ibm
Converte dalla codifica ASCII ad una variante della codifica EBCDIC.
lcase
Converte i caratteri in minuscolo.
ucase
Converte i caratteri in maiuscolo.

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[modifica | modifica sorgente]

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[modifica | modifica sorgente]

  1. ^ (EN) dd in The Open Group Base Specifications Issue 6 IEEE Std 1003.1, 2004 Edition. URL consultato il 17-05-2008.
  2. ^ * (EN) dd: Convert and copy a file in GNU Coreutils manual. URL consultato il 17-05-2008.

Voci correlate[modifica | modifica sorgente]

Collegamenti esterni[modifica | modifica sorgente]

  • (EN) dd in Linux Man Pages. URL consultato il 21-05-2008.
  • (EN) dd(1M) in Solaris 10 Reference Manual Collection - man pages. URL consultato il 21-05-2008.
Informatica Portale Informatica: accedi alle voci di Wikipedia che trattano di Informatica