Usa truncate
:
truncate -s 14M filename
Desde 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
puede no estar disponible en su sistema, p. en Mac OS X no está instalado de manera predeterminada (pero puede instalarlo fácilmente, usando macports, por ejemplo). En estos casos, es posible que deba usar dd
o head
en su lugar.
EDITAR:La forma más sencilla es probablemente el truncate
de la respuesta de Ashutosh Vishwa Bandhu, pero como lo señaló @ offby1, eso crea archivos dispersos que pueden no ser lo que desea. Las soluciones a continuación crean archivos normales y completos.
Los siguientes comandos crean un archivo de 14 MB llamado foo
:
-
fallocate
(gracias a @Breakthrough que lo sugirió en los comentarios y votó 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 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 con los primeros 14 MB de datos de otro archivo:
head -c 14MB bar.txt > foo
-
Cree un archivo 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 quieres 14*1024*1024
, reemplaza MB
con M
. Por ejemplo:
dd if=/dev/urandom of=foo bs=14M count=1
head -c 14M /dev/zero > foo
fallocate
solo trata en bytes, por lo que tendría que hacer (14*1024*1024=14680064)
fallocate -l 14680064 foo
dd bs=1MB count=14 if=/dev/zero of=<yourfilename>
ADVERTENCIA dd
sobrescribirá silenciosamente cualquier cosa tiene derecho a escribirle, si lo especifica voluntariamente o por accidente. Asegúrate de entender dd
, p.ej. con lectura dd --help
, y no estropea sus líneas de comando dd o puede crear fácilmente una pérdida de datos irreversible, incluso total .
Para empezar, if=
es el archivo de entrada y of=
es el archivo de salida . Siempre Verifique dos veces que lo hizo bien, antes de ejecutar el comando. :)