Je recherche une commande pour créer plusieurs (milliers de) fichiers contenant au moins 1 Ko de données aléatoires.
Par exemple,
Name size
file1.01 2K
file2.02 3K
file3.03 5K
etc.
Comment puis-je créer de nombreux fichiers comme celui-ci?
shell-script
files
João José
la source
la source
Réponses:
Puisque vous n'avez aucune autre exigence, quelque chose comme ça devrait fonctionner:
(cela nécessite
bash
au moins pour{1..1000}
).la source
bash
pour de nombreuses raisons, y compris$((…))
et$RANDOM
. Même$(…)
peut ne pas exister dans chaque shell.bash
ne proviennent-ils enbash
({1..1000}
provientzsh
,for n in...; done
et des variables provient de la Bourne shell,$(...)
,$((...))
et$RANDOM
viennent ksh). Les fonctionnalités qui ne sont pas POSIX sont{1..1000}
,$RANDOM
et/dev/urandom
."%04d"
dans ce casbash
ouzsh
pouvez le faire{0001..1000}
sansprintf
Une variante avec
seq
,xargs
,dd
etshuf
:Explication demandée par commentaires:
seq -w 1 10
imprime une séquence de chiffres de 01 à 10xargs -n1 -I%
exécute la commandesh -c 'dd ... % ...'
pour chaque numéro de séquence en remplaçant le % par luidd if=/dev/urandom of=file.% bs=$(shuf ...) count=1024
crée les fichiers alimentés à partir de / dev / urandom avec 1024 blocs avec une taille de bloc deshuf -i1-10 -n1
une valeur aléatoire de 1 à 10la source
Vous pouvez faire quelque chose comme ça:
la source
Cela utilise un seul pipeline et semble assez rapide, mais a la limitation que tous les fichiers sont de la même taille
Explication: Utilisez dd pour créer 10240 * 1024 octets de données; divisez cela en 10240 fichiers séparés de 1k chacun (les noms s'exécuteront de 'file.aaaa' à 'file.zzzz')
la source