$ dd if=/dev/urandom of=/dev/stdout bs=1k count=600 2>/dev/null | base64 | tr -d '\n'
- 単にランダムなデータのストリームは
/dev/random
からddすれば取得できる - ASCII文字に変換するためにbase64エンコードすることにした
- base64エンコードで133%の大きさになるので、目標サイズの100/133の大きさのデータが出てくるようにddの
bs
とcount
を設定する - 以下の例だと目標サイズは800kbyte(819200byte)なので、ddで書き出すサイズは600kbyte
-
tr -d '\n'
でbase64の改行を削除する -
base64
はPOSIXコマンドではないが、オプションなしだとGNUとBSDの違いは気にならないので使うことにした
wc
で生成された文字列のサイズを確認してみる
$ dd if=/dev/urandom of=/dev/stdout bs=1k count=600 2>/dev/null | base64 | tr -d '\n' | wc -c
819200