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 fooQuesto 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=1o
head -c 14MB /dev/urandom > foo -
Crea un file pieno di
\0s:dd if=/dev/zero of=foo.txt bs=14MB count=1o
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. :)