dd (Unix)

De la Wikipedia, enciclopedia liberă
Salt la: Navigare, căutare

dd este o comandă Unix care face o copiere și conversie low-level a datelor[1]. Comanda este descrisă în pagina de referință a manualului UNIX Version 7 și este probabil inspirată din comanda DD din IBM JCL[2]. În engleză, "DD" înseamnă Data Description.

dd este utilizată pentru copierea unui număr specificat de bytes sau blocuri, și face conversia de byte order precum și conversii mai esoterice precum cele din EBCDIC în ASCII.[3] dd poate fi de asemena folosită pentru copierea unor regiuni din fișiere driver raw, backup de sector de boot al unui hard disk, sau citirea unui număr fix de date dintr-un fișier special precum /dev/zero sau /dev/random.[4]

Sintaxă[modificare | modificare sursă]

Sintaxa comenzii este diferită de a celorlalte comenzi UNIX, și datorită omniprezenței sale a rezistat tuturor încercărilor uniformizare. dd folosește un format option=value în timp ce restul programelor utilitare UNIX folosesc un format -option value. De asemenea, datele de intrare ale comenzii sunt specificate folosind opțiunea if (input file).


Exemple[modificare | modificare sursă]

Crearea unei imagini de disc ISO dintr-un CD-ROM[modificare | modificare sursă]

dd if=/dev/cdrom of=/home/sam/myCD.iso bs=2048 conv=sync

O încercare de copiere a datelor de pe CD-ROM folosind comanda cp ar omite ultimul bloc de pe disc, rezultând într-un fișier de o lungime greșită.

Curățarea datelor de pe un hard disc[modificare | modificare sursă]

dd if=/dev/urandom of=/dev/hda

sau în mod alternativ

for n in {1..7}; do dd if=/dev/urandom of=/dev/sda bs=8b; done

Duplicarea unei partiții de disc pe o altă partiție[modificare | modificare sursă]

dd if=/dev/sda2 of=/dev/sdb2 bs=4096 conv=noerror

Copierea unei partiții de disc într-un fișier[modificare | modificare sursă]

dd if=/dev/sdb2 of=/home/sam/partition.image bs=4096 conv=noerror

Copierea unei partiții de disc pe un alt calculator[modificare | modificare sursă]

dd if=/dev/sdb2 | ssh user@host "dd of=/home/user/partition.image"

Crearea unui fișier de 1GB care conține numai zerouri[modificare | modificare sursă]

dd if=/dev/zero of=file1G.tmp bs=1G count=1

Duplicarea primelor 2 sectoare de pe discuri floppy[modificare | modificare sursă]

dd if=/dev/fd0 of=/home/sam/MBRboot.image bs=512 count=2

Crearea unei imagini de disc pentru întregul MBR (master boot record) incluzând tabela de partiții[modificare | modificare sursă]

dd if=/dev/sda of=/home/sam/MBR.image bs=512 count=1

Crearea unei imagini de disc pentru întregul MBR excluzând tabela de partiții[modificare | modificare sursă]

dd if=/dev/sda of=/home/sam/MBR_boot.image bs=446 count=1

Un test de performanță intrare/ieșire la scrierea pe disc[modificare | modificare sursă]

  dd if=/dev/zero bs=1024 count=1000000 of=/home/sam/1Gb.file
 dd if=/home/sam/1Gb.file bs=64k | dd of=/dev/null

Generează un fișier umplut cu 100 octeți cu valori aleatoare[modificare | modificare sursă]

 dd if=/dev/urandom of=/home/sam/myrandom bs=100 count=1

Conversia numelui unui fișier din litere mici în litere mari[modificare | modificare sursă]

dd if=filename of=filename conv=ucase

Căutarea de stringuri în memorie[modificare | modificare sursă]

 dd if=/dev/mem | hexdump -C | grep ”some string”

Suprascrierea cu zerouri a unui fișier de 1GB[modificare | modificare sursă]

dd if=/dev/zero of=mytestfile.out bs=1 count=0 seek=1G


Note[modificare | modificare sursă]

  1. ^ Bell Laboratories. „dd man page. http://www.orangetide.com/Unix/V7/usr/man/man1/dd.1. Accesat la 25 februarie 2009. 
  2. ^ Eric S. Raymond. „dd. http://www.catb.org/jargon/html/D/dd.html. Accesat la 19 februarie 2008. 
  3. ^ Sam Chessman. „How and when to use the dd command?”. CodeCoffee. http://www.codecoffee.com/tipsforlinux/articles/036.html. Accesat la 19 februarie 2008. 
  4. ^ Dd - LQWiki”. LinuxQuestions.org. http://wiki.linuxquestions.org/wiki/Dd. Accesat la 19 februarie 2008. 


Legături externe[modificare | modificare sursă]


 v  d  m  Programe în linia de comandă pentru Unix (mai multe)
Management de fișiere: cat | cd | chmod | chown | chgrp | cksum | cmp | cp | du | df | file | fsck | ln | ls | lsof | mkdir | mount | mv | pwd | rm | rmdir | split | touch
Management de procese: at | chroot | cron | exit | kill | killall | nice | pgrep | pidof | pkill | ps | pstree | sleep | time | top | wait
Management utilizator/mediu: env | finger | id | mesg | passwd | su | sudo | uname | uptime | w | wall | who | whoami | write
Procesare text: awk | comm | cut | ed | ex | fmt | head | iconv | join | less | more | paste | sed | sort | tac | tail | tr | uniq | wc | xargs
Programare Shell: basename | echo | expr | false | printf | test | true | unset Imprimare:
lp
Communicații:
inetd | netstat | ping | rlogin | traceroute
Căutare:
find | grep | strings
Diverse:
banner | bc | cal | dd | man | size | yes