Question Créer un répertoire de fichiers ayant chacun une taille de fichier donnée


Je voudrais créer 100 fichiers chacun avec une taille de fichier de 10Mb. Existe-t-il une simple commande Unix qui peut créer un répertoire avec ces 100 fichiers?


4
2018-06-04 23:06


origine


FYI c'est plus une question pour serverFault.SE - New Alexandria


Réponses:


for x in {1..100}; do dd if=/dev/zero of=file$x bs=10485760 count=1; done

if=FILE (read from FILE instead of stdin)
of=FILE (write to FILE instead of stdout)
bs=BYTES (force ibs=BYTES and obs=BYTES)
ibs=BYTES (read BYTES bytes at a time)
obs=BYTES (write BYTES bytes at a time)
count=1 (copy only 1 input block)

8
2018-06-04 23:09





Pour compléter la réponse d'Ochi, il s'agit d'un moyen de créer 100 fichiers de 10 Mo sans utiliser 1 Go d'espace disque et fonctionnant à la vitesse de l'éclair:

size=$((10*1024*1024))
nb_files=100
for n in $(seq -f "%03.0f" 1 $nb_files); do
  dd if=/dev/zero of=file$n bs=1 count=1 seek=$((size-1))
done

(Voir fichiers clairsemés pour plus de détails.)

Ou d'une autre manière (mais ici, si vous éditez l'un des fichiers, vous les éditez tous):

size=$((10*1024*1024))
n=$(seq -f "%03.0f" 1 1)
dd if=/dev/zero of=file$n bs=1 count=1 seek=$((size-1))
nb_files=100
for m in $(seq -f "%03.0f" 2 $nb_files); do
  ln file$n file$m
done

(Voir liens durs pour plus de détails.)


3
2018-06-07 09:20