dd
Tipus | utilitat UNIX |
---|---|
Part de | GNU Core Utilities |
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]É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]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 a 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
- Se salta N blocs del destí abans realitzar l'operació de copiar. La mida del bloc és indicat per obstant.
- Count =nombre
- Copia un nombre de blocs de l'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:
- 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 a la mida determinada per IBS.
- Block
- Omplir amb espais en blanc la línia llegida, fins a la mida indicada 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.