dd

De Viquipèdia
Dreceres ràpides: navegació, cerca

dd és una ordre de la família dels sistemes operatius Unix que permet copiar i convertir dades de fitxers[1] a baix nivell. Està especificada per l'estàndard IEEE Std 1003.1-2008, que és part de la Single UNIX Specification. Generalment s'usa per realitzar operacions avançades sobre dispositius o fitxers, com poden ser:

  • Transferències de dades específiques.
  • Còpies de seguretat de la informació en cru (raw data).
  • Conversió d'algunes codificacions suportades i/o caràcters predefinits.

Descripció[modifica | modifica el codi]

És de molta importància aclarir que en sistemes operatius Unix, qualsevol dispositiu és tractat com un fitxer. Per tant la comanda dd, pot ser utilitzada en diversos dispositius i volums (particions), més enllà dels fitxer pròpiament dits.

Segons l'especificació POSIX, dd copia el fitxer especificat com a origen cap al fitxer indicat com a destinació, tenint en compte la conversió de les dades i la mida de bloc, si és que s'ha specificat, per realitzar tant la lectura sobre l'origen com l'escriptura en destí. En cas que no s'hagi especificat un origen i/o destí, dd per defecte utilitza l'entrada i sortida estàndard, respectivament, per dur a terme l'operació.

Si s'ha especificat la mida de blocs per a la transferència (lectura/escriptura), mitjançant el paràmetre bs, i no s'ha indicat cap conversió llevat noerror,notrunc o sync, es procedeix a la lectura d'un bloc a la vegada de l'origen i l'escriptura d'aquest en destí. La mida del bloc a escriure és el mateix que el de la d'entrada, excepte quan s'indica la conversió sync, que en aquest cas es procedeix a omplir amb zeros el bloc de destí. Si no s'utilitza sync, l'últim bloc a escriure pot tenir una grandària menor.

D'altra banda, en cas que no s'hagi especificat una mida de bloc, dd utilitza 512 bytes com mida per defecte.

Mode d'ús[modifica | modifica el codi]

L'ús de la comanda dd té el següent format:

  • dd [PARÀMETRE] ...

Els principals paràmetres són:

If =origen
Llegeix de l'arxiu indicat com origen. Per defecte llegeix de l'entrada estàndard.
Of =destí
Escriu arxiu indicat com destí. Per defecte escriu a la sortida estàndard.
IBS =N
Llegeix de a N bytes des de l'origen.
Obstant =N
Escriu de a N bytes cap al destí.
Bs =N
Llegeix i escriu N bytes. Alternativa a usar IBS i obstant amb un mateix valor.
CBS =N
Estableix en N bytes la mida del bloc de conversió per block i unblock.
Skip =N
Es salta N blocs de l'origen abans realitzar l'operació de copiar. La mida del bloc és indicat per IBS.
Seek = N
Es saltaN blocs del destí abans realitzar l'operació de copiar. La mida del bloc és indicat per obstant.
Count =nombre
Copia un nombre de blocs del origen, en lloc de processar fins al final. La mida del bloc és indicat per IBS.
Conv =manera [, manera, ...]
Realitza les operacions de conversió, segons s'indiqui. Es poden indicar més d'una conversió, separant-les per comes.
Conversions suportades:
Ascii
Converteix els caràcters EBCDIC a ASCII.
EBCDIC
Converteix els caràcters ASCII a EBCDIC.
Ibm
Converteix els caràcters ASCII al EBCDIC de IBM.
Lcase
Intercanvia les majúscules per minúscules.
Ucase
Intercanvia les minúscules per majúscules.
Swab
Intercanvia cada parell de bytes de l'entrada. Per al cas especial de l'últim byte, aquest es cópia directament.
Noerror
No s'atura el procés davant errors de lectura a l' origen.
Notrunc
No es trunca el fitxer utilitzat com destí.
Sync
Omple cada bloc llegit amb zeros, fins la mida determinat per IBS.
Block
Omplir amb espais en blanc la línia llegida, fins la mida indicat per CBS. Reemplaça el caràcter de nova línia per espais, convertint la línia en un bloc (o registre).
Unblock
Reemplaçar els últims espais en blanc per un caràcter de salt de línia del registre llegit, que tingui la mida indicat per CBS. Realitza l'operació inversa a bloc.

Referències[modifica | modifica el codi]