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 wikitesto]

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 wikitesto]

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 wikitesto]

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(bytes)
Legge e scrive dati in blocchi delle dimensioni specificate.
ibs=dimensioni
Legge i dati in blocchi delle dimensioni specificate (default: 512).
obs=dimensioni
Scrive i dati in blocchi delle dimensioni specificate (default: 512).
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.
excl
Fallisce se il file di output esiste già; dd deve creare il file di output in sé.
nocreat
Non crea il file di output; il file di output deve esistere necessariamente.
notrunc
Non tronca il file di output.
fsync
Sincronizza i dati di output e i metadata poco prima del completamento. Questo forza fisicamente la scrittura dei dati di output e dei metadata.

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 wikitesto]

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

Per effettuare la masterizzazione di un file immagine iso si inserisce nel campo 'if=' il nostro file immagine e nel campo 'of='il nostro masterizzatore CD/DVD, 'bs=8M' definisce la grandezza del nostro blocco dati:

dd if=file.iso of=/dev/DRIVE bs=8M conv=fsync 

Note[modifica | modifica wikitesto]

  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 wikitesto]

Collegamenti esterni[modifica | modifica wikitesto]

  • (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