Originariamente inviato da cacao74
Anche se per quello che chiedi tu è più 'elegante' scrivere semplicemente:
dd if=/dev/zero of=000.0 bs=1k count=$(expr 680 \* 1024)
come suggeriva il buon Ikitt dove sono sicuro abbia scritto, per una svista, seek in luogo di count.
Il parametro "seek" non ha rilevante importanza in questo caso.
C'e` stata una serie di sviste mescolate tra loro
Quel che volevo fare sin da principio e` creare un file "sparso", cosa che si dovrebbe (stavolta ho provato, ma mi auto-concedo il beneficio del dubbio) fare cosi`:
codice:
dd if=/dev/zero of=test.img bs=1k count=1 seek=$(expr 680 \* 1024)
Un file sparso ha alcune interessanti caratteristiche:
- ha dimensione prefissata, ma non occupa blocchi su disco (in effetti e` sostanzialmente vuoto, a parte 1k di zeri in questo caso)
- si crea assai piu` velocemente di un file pieno, in quanto... vuoto

esempio:
codice:
$ dd if=/dev/zero of=test.img bs=1k count=1 seek=$(expr 680 \* 1024)
1+0 records in
1+0 records out
1024 bytes transferred in 0.000144 seconds (7110873 bytes/sec)
$ ls -lh test.img
-rw-r--r--  1 xromani xromani 681M Mar 30 09:26 test.img
$ df -h | grep tmp
tmpfs                 502M     0  502M   0% /dev/shm
/dev/mapper/sysvg-lv_tmp
                      2.1G   33M  2.0G   2% /tmp
Il problema, almeno cosi` su due piedi, sta nel riempimento, nel senso che se si prova a copiarci dentro dati, la dimensione cambia in proporzione al contenuto effettivo. Ho un'idea del perche` accade questo, ma non saprei come evitarlo :\