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

Introduzione a bs, seek, skip e count

Quattro opzioni molto usate di dd sono:

  • bs (block size): dimensione del singolo blocco da copiare;
  • seek (ricerca): ricerca di blocchi in scrittura, ovvero per la destinazione;
  • skip (salto): ricerca di blocchi in lettura, ovvero dalla sorgente;
  • count (conto): il numero di blocchi da considerare.

Volendo fare una piccola prova con il file di testo che abbiamo creato, possiamo incorporare tre delle opzioni sopra descritte.

dd if=test.dd of=test3.dd count=2 bs=5 skip=1 2>/dev/null

Partendo dal file origine test.dd e leggendo con cat test3.dd avremo il seguente risultato:

o è un te

Analizziamo il risultato:

  • bs=5: Dimensione blocchi da 5 byte, ovvero 5 caratteri da 8 bit.
  • skip=1: salta 1 blocco da 5 byte, ovvero 5 caratteri da 8 bit: la parola "Questo" viene troncata e la trascrizione comincia dal sesto carattere, o.
  • count=2: vengono considerati 2 blocchi da 5 byte, ovvero 10 caratteri da 8 bit, spazi compresi, dopodichè dd termina la lettura e trascrive il testo nel file di destinazione.

E non viene considerato il carattere di newline alla fine del testo generato con echo quando lo abbiamo creato; quindi il prompt viene posizionato sulla stessa riga di stdout, subito dopo l'ultimo carattere di destra.

Attenzione!! Potreste obiettare che i caratteri risultanti, compresi gli spazi, siano nove. Ebbene, avete ragione. Ma dovete sapere che la e accentata, in alcuni sistemi, può arrivare a misurare due byte (ovvero 16 bit, e dipende dal locale, dalla distribuzione, dalla versione di glibc...).

Se il risultato che vedete è di nove caratteri potete provare a convertire la e accentata in una e non accentata e ripetere il procedimento. Il risultato sarà:

o e un tes

E conteremo esattamente 10 caratteri.

Block Size in Entrata ed in Uscita

L'opzione bs (Block Size) può essere divisa in due, una per la dimensione dei blocchi in entrata (ibs, Input Block Size) e una per la dimensione dei blocchi in uscita (obs, Output Block Size).

In presenza di queste due opzioni dd leggerà in una volta il numero di byte specificati in ibs e scriverà in una volta il numero di byte specificati in obs. Questo permette di selezionare una determinata dimensione di blocco in entrata ed in uscita.

Sembra una caratteristica triviale, ma sappiate che esistono filesystem (come ISO9660) dove, in presenza di un numero di byte per blocco differente da una determinata specifica tale filesystem può risultare illeggibile da alcuni lettori multimediali. Ecco che allora è necessario leggere un flusso di dati ibs byte per volta, e scriverlo obs byte per volta.

Pagina successiva
File speciali e procedure di base
Pagina precedente
Piccole prove

 

Segnala ad un amico

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

    © Copyright 2025 BlazeMedia srl - P. IVA 14742231005

    • Gen. pagina: 0.27 sec.
    •  | Utenti conn.: 46
    •  | Revisione 2.0.1
    •  | Numero query: 44
    •  | Tempo totale query: 0.08