J'ai un script qui écrit dans quelques fichiers mais j'en ai besoin d'une taille spécifique. Je me demande donc s'il existe un moyen d'ajouter un nombre spécifique d'octets nuls à un fichier en utilisant des outils de ligne de commande standard (par exemple, en copiant depuis /dev/zero
)?
26
oflag=append
marche pour vous?dd
commandement.fallocate
une autre option pour insérer des trous dans un fichier. superuser.com/a/1172904/111432Réponses:
truncate
est beaucoup plus rapide quedd
. Pour agrandir le fichier avec 10 octets, utilisez:la source
Vous pouvez également essayer ceci
Cela lira à partir de / dev / zero et s'ajoutera à votre fichier NUMBER octets.
la source
Voici un exemple d'ajout de 10 Mo à un fichier en utilisant uniquement dd.
la source
ma première supposition serait:
Fondamentalement, cette commande indique à dd «d'aller» à la fin du fichier et d'ajouter quelques octets lus précédemment à partir de / dev / zero.
Cordialement,
la source
ou
et pour calculer la taille plus facilement:
la source
Si vous remplissez votre fichier avec des octets nuls, je suppose que vous manipulez le fichier dans un
char *
in C. Si tel est le cas, vous n'aurez peut-être pas besoin de remplir le fichier avec des octets nuls, en ajoutant uniquement un octet nul à la fin du fichier, puis le remplir avec des octets aléatoires pourrait être suffisant. Dans ce cas, le programme C ci-dessous serait très efficace (à utiliser uniquement sur des fichiers plus petits que le 2ème paramètre, sinon les données seraient écrasées). Il pourrait même faire ce que vous voulez (remplissage avec des octets nuls) car lalseek
définition de la fonction indique que:Dans ce cas, le 1er appel à
lseek
etwrite
pourrait être supprimé. Mais les tests doivent être effectués sur votre système en premier ...la source