Usa truncate
:
truncate -s 14M filename
Da man truncate
:
DESCRIPTION
Shrink or extend the size of each FILE to the specified size
[...]
-s, --size=SIZE
set or adjust the file size by SIZE
Nota:truncate
potrebbe non essere disponibile sul tuo sistema, ad es. su Mac OS X non è installato di default (ma puoi installarlo facilmente, usando ad esempio macports). In questi casi potrebbe essere necessario utilizzare dd
o head
invece.
EDIT:Il modo più semplice è probabilmente il truncate
della risposta di Ashutosh Vishwa Bandhu, ma come sottolineato da @ offby1 che crea file sparsi che potrebbero non essere ciò che desideri. Le soluzioni seguenti creano file normali e completi.
I seguenti comandi creano un file di 14 MB chiamato foo
:
-
fallocate
(grazie a @Breakthrough che lo ha suggerito nei commenti e vota la risposta di Ahmed Masud di seguito che lo menziona anche.)fallocate -l 14000000 foo
Questo comando è particolarmente impressionante poiché è veloce quanto
truncate
(istantaneo) indipendentemente dalla dimensione del file desiderata (a differenza delle altre soluzioni che saranno lente per file di grandi dimensioni) e tuttavia crea file normali, non sparsi :$ truncate -s 14MB foo1.txt $ fallocate -l 14000000 foo2.txt $ ls -ls foo?.txt 0 -rw-r--r-- 1 terdon terdon 14000000 Jun 21 03:54 foo1.txt 13672 -rw-r--r-- 1 terdon terdon 14000000 Jun 21 03:55 foo2.txt
-
Crea un file pieno di dati casuali
dd if=/dev/urandom of=foo bs=14MB count=1
o
head -c 14MB /dev/urandom > foo
-
Crea un file pieno di
\0
s:dd if=/dev/zero of=foo.txt bs=14MB count=1
o
head -c 14MB /dev/zero > foo
-
Crea un file riempito con i primi 14 MB di dati di un altro file:
head -c 14MB bar.txt > foo
-
Crea un file riempito con gli ultimi 14 MB di dati di un altro file:
tail -c 14MB bar.txt > foo
In tutti gli esempi precedenti, il file sarà 14*1000*1000
se vuoi 14*1024*1024
, sostituire MB
con M
. Ad esempio:
dd if=/dev/urandom of=foo bs=14M count=1
head -c 14M /dev/zero > foo
fallocate
tratta solo in byte, quindi dovresti fare (14*1024*1024=14680064)
fallocate -l 14680064 foo
dd bs=1MB count=14 if=/dev/zero of=<yourfilename>
ATTENZIONE dd
sovrascriverà silenziosamente qualsiasi cosa hai il diritto di scrivere a, se lo specifichi volontariamente o per caso. Assicurati di aver compreso dd
, per esempio. con lettura dd --help
, e non rovini le tue linee di comando dd altrimenti puoi facilmente creare una perdita di dati irreversibile - anche totale .
Per cominciare, if=
è il file di input e of=
è il file di output . Sempre ricontrolla di aver capito bene, prima di eseguire il comando. :)