Utilisez truncate
:
truncate -s 14M filename
À partir de 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
Remarque :truncate
peut ne pas être disponible sur votre système, par ex. sur Mac OS X, il n'est pas installé par défaut (mais vous pouvez facilement l'installer, en utilisant macports par exemple). Dans ces cas, vous devrez peut-être utiliser dd
ou head
à la place.
EDIT :le moyen le plus simple est probablement le truncate
de la réponse d'Ashutosh Vishwa Bandhu, mais comme l'a souligné @ offby1, cela crée des fichiers clairsemés qui peuvent ne pas être ce que vous voulez. Les solutions ci-dessous créent des fichiers normaux et complets.
Les commandes suivantes créent un fichier de 14 Mo appelé foo
:
-
fallocate
(merci à @Breakthrough qui l'a suggéré dans les commentaires et votez pour la réponse d'Ahmed Masud ci-dessous qui le mentionne également.)fallocate -l 14000000 foo
Cette commande est particulièrement impressionnante car elle est aussi rapide que
truncate
(instantané) quelle que soit la taille de fichier souhaitée (contrairement aux autres solutions qui seront lentes pour les gros fichiers) et crée pourtant des fichiers normaux, pas clairsemés :$ 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
-
Créer un fichier rempli de données aléatoires
dd if=/dev/urandom of=foo bs=14MB count=1
ou
head -c 14MB /dev/urandom > foo
-
Créer un fichier rempli de
\0
s :dd if=/dev/zero of=foo.txt bs=14MB count=1
ou
head -c 14MB /dev/zero > foo
-
Créez un fichier rempli avec les 14 premiers Mo de données d'un autre fichier :
head -c 14MB bar.txt > foo
-
Créez un fichier rempli avec les 14 derniers Mo de données d'un autre fichier :
tail -c 14MB bar.txt > foo
Dans tous les exemples ci-dessus, le fichier sera 14*1000*1000
si vous voulez 14*1024*1024
, remplacez MB
avec M
. Par exemple :
dd if=/dev/urandom of=foo bs=14M count=1
head -c 14M /dev/zero > foo
fallocate
ne traite qu'en octets, vous devrez donc faire (14*1024*1024=14680064)
fallocate -l 14680064 foo
dd bs=1MB count=14 if=/dev/zero of=<yourfilename>
AVERTISSEMENT dd
écrasera silencieusement tout vous avez le droit d'écrire, si vous le spécifiez volontairement ou par accident. Assurez-vous de comprendre dd
, par exemple. avec lecture dd --help
, et vous ne gâchez pas vos lignes de commande dd, sinon vous pouvez facilement créer une perte de données irréversible - même totale .
Pour commencer, if=
est le fichier d'entrée et of=
est le fichier de sortie . Toujours vérifiez que vous avez bien compris avant d'exécuter la commande. :)