ciao a tutti,
conoscete il modo per creare un file vuoto di grandezza arbitraria?
con touch nome_del_file lo creo e come lo rendo grande 680mb?
grazie per le eventuali risposte
ciao a tutti,
conoscete il modo per creare un file vuoto di grandezza arbitraria?
con touch nome_del_file lo creo e come lo rendo grande 680mb?
grazie per le eventuali risposte
In a world without walls and fences, who needs windows and gates?
dovrebbe funzionare:Originariamente inviato da Rommel
ciao a tutti,
conoscete il modo per creare un file vuoto di grandezza arbitraria?
con touch nome_del_file lo creo e come lo rendo grande 680mb?
grazie per le eventuali risposte
codice:dd if=/dev/zero of=/path/al/file bs=1k seek=$( expr 680 \* 1024 \* 1024 )
"Qualsiasi esperto ha paura di combattere usando la katana vera. Anch'io. Ma non ignoro la mia paura, riesco ad accettarla, e a metterla da parte accanto a me".
funziona
grazie per l'aiuto
In a world without walls and fences, who needs windows and gates?
no...non funziona.
mi sembra che hai involontariamente scoperto un bug di gnu/linux. risulta che il file 000.0 (il file che voglio rendere di 680Mb) sia grande 680Gb VVoVe:
In a world without walls and fences, who needs windows and gates?
Su questo non sarei propriamente d'accordo anche se Rommel ha detto che funziona perfettamente.Originariamente inviato da Ikitt
dovrebbe funzionare:
codice:dd if=/dev/zero of=/path/al/file bs=1k seek=$( expr 680 \* 1024 \* 1024 )
Se non ho capito male, il comando dovrebbe iniziare a saltare (seek) 680M quindi scrivere il file di ingresso a blocchi di 1k. Io avrei aggiunto anche l'opzione count=1 altrimenti dovrebe scrivere fino ad esaurimento dello spazio sulla partizione. Naturalmente non vengo qui senza dati alla mano.
ciaocodice:[sergio@winnie ~]$ time dd if=/dev/zero of=blankCD.iso bs=1k seek=1024 interruzione volontaria con [CTRL]-[C] entrati 73397+0 record usciti 73396+0 record 75157504 bytes transferred in 1,597279 seconds (47053463 bytes/sec) real 0m1.599s user 0m0.000s sys 0m0.940s [sergio@winnie ~]$ ls -lh blankCD.iso -rw-r--r-- 1 sergio sergio 73M 2005-03-29 19:46 blankCD.iso [sergio@winnie ~]$ rm blankCD.iso [sergio@winnie ~]$ time dd if=/dev/zero of=blankCD.iso bs=1k seek=1024 count=1 entrati 1+0 record usciti 1+0 record 1024 bytes transferred in 0,009862 seconds (103833 bytes/sec) real 0m0.011s user 0m0.010s sys 0m0.000s [sergio@winnie ~]$ ls -lh blankCD.iso -rw-r--r-- 1 sergio sergio 1,1M 2005-03-29 19:47 blankCD.iso [sergio@winnie ~]$
[EDIT]
come non detto...
Non si tratta di un bug. ---> man ddoriginariamente inviato da Rommel:
no...non funziona.
mi sembra che hai involontariamente scoperto un bug di gnu/linux. risulta che il file 000.0 (il file che voglio rendere di 680Mb) sia grande 680Gb
slack? smack!
risolto con:
dd if=/dev/zero of=./000.0 seek=1024 count=1392640
grazie per il suggerimento
In a world without walls and fences, who needs windows and gates?
Anche se per quello che chiedi tu è più 'elegante' scrivere semplicemente:Originariamente inviato da Rommel
risolto con:
dd if=/dev/zero of=./000.0 seek=1024 count=1392640
grazie per il suggerimento
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.
ciao
slack? smack!
C'e` stata una serie di sviste mescolate tra loroOriginariamente 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.
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`:
Un file sparso ha alcune interessanti caratteristiche:codice:dd if=/dev/zero of=test.img bs=1k count=1 seek=$(expr 680 \* 1024)
- 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:
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 :\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
"Qualsiasi esperto ha paura di combattere usando la katana vera. Anch'io. Ma non ignoro la mia paura, riesco ad accettarla, e a metterla da parte accanto a me".
Interessante la questione di questi "sparse file".
In effetti il mio di utilizzare "dd" permetteva la creazione di un file, vuoto, la cui dimensione fisica corrisponde a quella logica. Il file è effettivamente riempito di zeri:
dd if=/dev/zero of=000.0 bs=1k count=$(expr 680 \* 1024)
La creazione di uno "sparse file" invece permette di creare un file effettivamente "vuoto" la cui dimensione fisica non corrisponde alla dimensione logica del file:
dd if=/dev/zero of=test.img bs=1k count=1 seek=$(expr 680 \* 1024)
Infatti negll'esempio precedente andiamo a scrivere 1024 byte di dati dopo aver fatto un salto di 680MB. Logicamente il file ha dimensione logica di 680M+1k, mentre lo spazio realmente occupato è di 1k.
Se si necessita di scrivere su un file vuoto "mantenendo" la dimensione logica iniziale, occorre a questo punto, "appendere" i dati, in quanto una scrittura diretta, "cancellerebbe" il salto di 680M.
Sono andato fin troppo oltre le mie competenze, ma credo che per capirlo fino in fondo occorre conoscere come il filesystem gestisce i file e ne archivia le caratteristiche.
ciao
slack? smack!
Scusate.. ma a che può servire un file vuoto?