dd (Unix)

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare

dd este o comanda de Unix si Unix de operare sisteme și , mai general al POSIX [1] sisteme , care copiază date în blocuri, care efectuează în mod opțional conversii.

Descriere

În sistemele Unix , toate driverele hardware (cum ar fi hard disk-urile) sunt tratate ca fișiere normale în sistemul de fișiere. dd efectuează operații normale de fișiere (citire, scriere, copiere) pe aceste fișiere speciale și, de asemenea, vă permite să convertiți datele în etapa de copiere, inclusiv conversia de la ASCII la codificarea EBCDIC . Poate fi folosit și pentru a crea fișiere rare .

Sintaxă

Sintaxa generală este:

 dd [ parametri ...]

Spre deosebire de alte comenzi Unix , parametrii sunt toți sub forma nume = valoare (fără spații înainte sau după semnul " = ") și pot fi specificați în orice ordine.

Opțiuni

Parametrii principali sunt:

if = nume de fișier
Citește datele din numele fișierului fișierului în locul intrării standard .
of = nume de fișier
Scrie date în numele fișierului fișier în loc de ieșire standard .
bs = dimensiune (octeți)
Citește și scrie date în blocuri de dimensiunea specificată.
ibs = dimensiune
Citește date în blocuri de dimensiunea specificată (implicit: 512).
obs = size
Scrie date în blocuri de dimensiunea specificată (implicit: 512).
count = number_blocks
Copiază numai numărul specificat de blocuri.
skip = number_blocks
Citiți și aruncați numărul indicat de blocuri înainte de a începe să copiați.
seek = number_blocks
Înaintează numărul indicat de blocuri înainte de a începe să scrii.
conv = conversie [, conversie ...]
Efectuează conversiile listate (separate prin virgule) în timpul copierii. Principalele conversii includ:
ascii
Conversia de la codificarea EBCDIC la codificarea ASCII .
ebcdic
Conversia de la codificarea ASCII la codificarea EBCDIC .
ibm
Conversia de la codificarea ASCII la o variantă de codificare EBCDIC .
lcase
Convertiți caracterele în minuscule.
ucase
Convertiți caractere în majuscule.
excl
Eșuează dacă fișierul de ieșire există deja; dd trebuie să creeze singur fișierul de ieșire.
nocreat
Nu creează fișierul de ieșire; fișierul de ieșire trebuie să existe în mod necesar.
notrunc
Nu trunchiază fișierul de ieșire.
fsync
Sincronizați datele de ieșire și metadatele chiar înainte de finalizare. Acest lucru forțează fizic scrierea datelor și metadatelor de ieșire.
sincronizare
umple fiecare bloc de intrare cu NUL până la dimensiunea de ibs ; atunci când este utilizat împreună cu blocarea sau deblocarea, se umple cu spații în loc de NUL

Dimensiunile blocurilor sunt specificate în număr de octeți (de exemplu, 42 ) sau pot fi specificate cu alte unități de măsură prin specificarea sufixelor:

  • ca număr de blocuri de 512 octeți care specifică sufixul b (de ex. 33b );
  • ca număr KiB prin specificarea sufixului k (de ex. 1024k );

Versiunea GNU a dd are suport pentru sufixe, conversii și parametri suplimentari [2] și este posibilă trimiterea semnalului SIGUSR1 către un proces dd în curs de desfășurare pentru ca acesta să arate la eroare standard cantitatea de date copiată până acum fără a o întrerupe.

Exemple de utilizare

Faceți o copie a unei partiții de disc / dev / hda1 în fișierul backup_partition_1 (pe sistemele GNU / Linux ):

 dd if = / dev / hda1 of = backup_partition_1 bs = 1024k

Prealocați un fișier numit date 20 MiB :

 dd if = / dev / zero of = date bs = 1024k count = 20

Faceți o copie a datelor care se află pe dispozitivul / dev / sr0 , care în sistemele GNU / Linux corespunde de obicei primei unități CD / DVD SCSI , recuperând astfel de fapt imaginea .iso a unui CD / DVD de pe acesta:

 dd if = / dev / sr0 of = file.iso

Pentru a arde un fișier ISO , introduceți fișierul nostru imagine în câmpul „ if =” și în câmpul „ of =” arzătorul nostru de CD / DVD, „ bs = 8M” definește dimensiunea blocului nostru de date:

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

Ștergeți discul suprascriind toate zerourile:

 dd if = / dev / zero of = / dev / sda bs = 4k

O altă metodă de ștergere ar putea fi suprascrierea cu date aleatorii:

 dd if = / dev / urandom of = / dev / sda bs = 4k

Notă

  1. ^ (EN) dd , în The Open Group Base Specifications Issue 6 IEEE Std 1003.1, 2004 Edition. Adus 17.05.2008 .
  2. ^ (EN) dd: convertiți și copiați un fișier în manualul GNU Coreutils. Adus 17.05.2008 .

Elemente conexe

linkuri externe

  • ( EN ) dd , în Linux Man Pages . Adus 21-05-2008, tăiat gu y de . s este i Zero
  • ( EN ) dd (1M) , în colecția manualului de referință Solaris 10 - pagini man . Adus 21-05-2008 (arhivat din original la 6 iunie 2008) .
Informatică Portal IT : accesați intrările Wikipedia care se ocupă cu IT