Pour ce que cela vaut, headne comprend pas -csur mon ordinateur Solaris 10.
rahmu
2
Intéressant qui headpeut lire /dev/urandom, mais tailne peut pas.
Stefan Lasiewski
22
@StefanLasiewski tailtente d'abord d'aller à la fin du fichier d'entrée, ce qui prend une éternité (littéralement).
Gilles
Ah, comme 'tail / dev / infinity`, s'il existait un tel dispositif.
Stefan Lasiewski
3
@StefanLasiewski Vous avez /dev/zeroaussi, si vous n'aimez pas la variété.
Gilles
35
En supposant que les données pseudo-aléatoires suffisent, vous dd if=/dev/urandom of=target-file bs=1M count=1000ferez ce que vous voulez.
dd (1) lira des blocs de données d'un fichier d'entrée et les écrira dans un fichier de sortie. Le langage de ligne de commande est un peu bizarre, mais c’est l’un de ces outils vraiment utiles qui valent la peine d’être maîtrisés.
Dans ce cas if, le fichier d'entrée, le fichier de ofsortie, bscorrespond à la "taille du bloc" - et j'ai utilisé l'extension GNU pour définir la taille plus facilement. (Vous pouvez également utiliser 1048576 si vous ddn'avez pas l'extension GNU.) countEst le nombre de blocs à lire ifet à écrire of.
/dev/urandomC'est un meilleur choix que /dev/randomparce que , sous Linux, il retombera sur des données pseudo-aléatoires fortes plutôt que de bloquer lorsque des données réellement aléatoires sont épuisées.
Vous pouvez également vouloir regarder http://www.random.org/ comme un autre moyen d’obtenir des données aléatoires sans avoir à les générer vous-même.
Remarque - Les spécifications de l’unité telles que 1Mne sont pas disponibles dans toutes les ddvariantes standard . Si votre version de ddest affectée, utilisez bs=1048576.
Chris Down
4
L'exemple de commande créera un fichier de 1 000 000 blocs de 1 Mo chacun. C'est environ 1 To (1M x 1Mo), pas 1 Go (ce qui serait 1K x 1Mo). Par ailleurs, jusqu’à un certain point, l’augmentation de la taille des blocs et la réduction du nombre de blocs ont tendance à produire un meilleur débit pour une quantité donnée de données de sortie.
un CVn
2
while true;do head /dev/urandom | tr -dc A-Za-z0-9;done | head -c 5000K | tee 5000kb
Utilisé pour générer 5 Mo de données de caractères aléatoires. Si vous avez besoin d'une taille différente, changez la -cvaleur de head, changez le nom du fichier de sortie, exécutez-le et attendez la fin de l'exécution.
vi
avecvi -w randomfile
et demandez à quelqu'un qui n'a jamais été vuvi
de quitter le programme. ;)Réponses:
Sur la plupart des unices:
Si vous
head
ne comprenez pas leG
suffixe, vous pouvez spécifier la taille en octets:Si vous
head
ne comprenez pas l'-c
option (c'est courant mais pas POSIX; vous avez probablement OpenBSD):Ne pas utiliser
/dev/random
sous Linux, utilisez/dev/urandom
.la source
head
ne comprend pas-c
sur mon ordinateur Solaris 10.head
peut lire/dev/urandom
, maistail
ne peut pas.tail
tente d'abord d'aller à la fin du fichier d'entrée, ce qui prend une éternité (littéralement)./dev/zero
aussi, si vous n'aimez pas la variété.En supposant que les données pseudo-aléatoires suffisent, vous
dd if=/dev/urandom of=target-file bs=1M count=1000
ferez ce que vous voulez.dd (1) lira des blocs de données d'un fichier d'entrée et les écrira dans un fichier de sortie. Le langage de ligne de commande est un peu bizarre, mais c’est l’un de ces outils vraiment utiles qui valent la peine d’être maîtrisés.
Dans ce cas
if
, le fichier d'entrée, le fichier deof
sortie,bs
correspond à la "taille du bloc" - et j'ai utilisé l'extension GNU pour définir la taille plus facilement. (Vous pouvez également utiliser 1048576 si vousdd
n'avez pas l'extension GNU.)count
Est le nombre de blocs à lireif
et à écrireof
./dev/urandom
C'est un meilleur choix que/dev/random
parce que , sous Linux, il retombera sur des données pseudo-aléatoires fortes plutôt que de bloquer lorsque des données réellement aléatoires sont épuisées.Vous pouvez également vouloir regarder http://www.random.org/ comme un autre moyen d’obtenir des données aléatoires sans avoir à les générer vous-même.
la source
1M
ne sont pas disponibles dans toutes lesdd
variantes standard . Si votre version dedd
est affectée, utilisezbs=1048576
.Utilisé pour générer 5 Mo de données de caractères aléatoires. Si vous avez besoin d'une taille différente, changez la
-c
valeur de head, changez le nom du fichier de sortie, exécutez-le et attendez la fin de l'exécution.la source