Punto informatico Network
Canali
20090625121531_705979872_20090625121450_342713463_sl_sync.png

Guida all'utilizzo di dd

30/01/2010
- A cura di
Linux & Open Source - Nella suite di GNU Coreutils è presente un piccolo programmino, semplice e versatile, che può salvarvi la giornata... o essere la vostra rovina.

Tag

Passa qui con il mouse e visualizza le istruzioni per utilizzare i tag!

linux (1) .

Valutazione

  •  
Voto complessivo 5 calcolato su 87 voti

Piccole prove

Adesso salviamo un piccolo file ASCII per le nostre prove. Entriamo nella directory home dell'utente correntemente attivo:

cd ~

Creiamo un piccolo file di testo:

echo "Questo è un test per dd" > test.dd

Ora vogliamo far leggere direttamente a dd il file creato.

dd if=test.dd

L'output sarà simile al seguente:

Questo è un test per dd
0+1 records in
0+1 records out
25 bytes (25 B) copied, 3.6385e-05 s, 687 kB/s

Le ultime tre righe sono un messaggio interno di dd che informano l'utente dei dati copiati, con le caratteristiche dei blocchi in entrata e in uscita, il tempo impiegato e la velocità dell'operazione espressa in kB/s. Le informazioni sono inviate a standard error (stderr o descrittore 2).

Il testo del file potrebbe anche venire scritto dopo il messaggio di status, ma ciò è irrilevante.

Se volete sopprimere queste "righe di stato" dovete aggiungere la dicitura 2>/dev/null alla fine della riga:

dd if=test.dd 2>/dev/null

E avrete il testo pulito:

Questo è un test per dd

Analogie con cat e redirezioni

Probabilmente i più attenti tra voi si saranno accorti che l'ultimo comando è esattamente uguale ad una lettura tramite cat:

cat test.dd

Così come la lettura del testo con un semplice cat è equivalente al comando seguente:

cat test.dd | dd 2>/dev/null

Il che ci dimostra che dd da solo prende i dati in standard input e li riversa in standard output, come abbiamo evidenziato nella pagina precedente.

Ora leggiamo e scriviamo come in un vaso comunicante, dal testo di esempio ad un file di destinazione:

dd if=test.dd of=test2.dd 2>/dev/null

Si noti che il trasferimento dei dati con le opzioni if e of è equivalente alla redirezione della shell:

dd if=test.dd >test2.dd 2>/dev/null

Oppure:

cat test.dd | dd >test2.dd 2>/dev/null

Oppure, ancora, solo usando cat:

cat test.dd > test2.dd

Leggiamo poi il risultato con dd:

dd if=test2.dd 2>/dev/null

Questo è un test per dd

Sono tutti procedimenti equivalenti: ve li ho fatti vedere per dimostrarvi che molto spesso in GNU/Linux è possibile raggiungere lo stesso risultato usando strade diverse, con procedure diverse e programmi diversi. Notate che non ho mai usato una comando di copia file:

cp test.dd test2.dd

Sebbene l'effetto sperimentato con dd sia stato esattamente lo stesso.

Pagina successiva
Opzioni intermedie
Pagina precedente
Concetti di base

 

Segnala ad un amico

Tuo nome Tuo indirizzo e-mail (opzionale)
Invia a:
    Aggiungi indirizzo email
    Testo

    © Copyright 2024 BlazeMedia srl - P. IVA 14742231005

    • Gen. pagina: 0.24 sec.
    •  | Utenti conn.: 76
    •  | Revisione 2.0.1
    •  | Numero query: 44
    •  | Tempo totale query: 0.05