EDITAR: La forma más simple es probablemente la respuestatruncate
de Ashutosh Vishwa Bandhu , pero como lo señaló @ offby1 que crea archivos dispersos que pueden no ser lo que desea. Las siguientes soluciones crean archivos normales y completos.
Los siguientes comandos crean un archivo de 14MB llamado foo
:
fallocate
(Gracias a @Breakthrough que lo sugirió en los comentarios y vota la respuesta de Ahmed Masud a continuación, que también lo menciona).
fallocate -l 14000000 foo
Este comando es particularmente impresionante ya que es tan rápido como truncate
(instantáneo) independientemente del tamaño de archivo deseado (a diferencia de las otras soluciones que serán lentas para archivos grandes) y, sin embargo, crea archivos normales, no dispersos:
$ 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 archivo lleno de datos aleatorios
dd if=/dev/urandom of=foo bs=14MB count=1
o
head -c 14MB /dev/urandom > foo
Crea un archivo lleno de \0
s:
dd if=/dev/zero of=foo.txt bs=14MB count=1
o
head -c 14MB /dev/zero > foo
Cree un archivo lleno con los primeros 14 MB de datos de otro archivo:
head -c 14MB bar.txt > foo
Cree un archivo lleno con los últimos 14 MB de datos de otro archivo:
tail -c 14MB bar.txt > foo
En todos los ejemplos anteriores, el archivo será, 14*1000*1000
si lo desea 14*1024*1024
, reemplazar MB
con M
. Por ejemplo:
dd if=/dev/urandom of=foo bs=14M count=1
head -c 14M /dev/zero > foo
fallocate
solo ofertas en bytes, por lo que tendría que hacer (14 * 1024 * 1024 = 14680064)
fallocate -l 14680064 foo