Bir dosyayı rasgele veriyle nasıl doldurabilirim?


124

Nasıl yeni bir dosya oluşturabilir ve 1 Gigabyte değerinde rastgele veriyle doldurabilirim? Bazı yazılımları test etmek için buna ihtiyacım var.

/dev/randomVeya kullanmayı tercih ederim /dev/urandom.


74
violan vi -w randomfileve hiç görmedi birine sormak viprogramından çıkın. ;)
Wildcard

1
Sadece Facebook yazısından yukarıdaki yorum gibi geldi! facebook.com/ProgrammersCreateLife/photos/a.241809332534619/…
Parixit

Yanıtlar:


171

Çoğu birimde:

head -c 1G </dev/urandom >myfile

Eğer senin headanlamıyor Gekini Eğer byte olarak boyut belirtebilirsiniz:

head -c 1073741824 </dev/urandom >myfile

Bu seçeneği headanlamadıysa -c(yaygın ancak POSIX değil; muhtemelen OpenBSD’niz var):

dd bs=1024 count=1048576 </dev/urandom >myfile

Kullanmayın /dev/randomLinux üzerinde kullanın /dev/urandom.


1
Buna değer, Solaris 10 makinemde headanlamıyor -c.
rahmu

2
İlginç headokuyabilir /dev/urandomama okuyamaz tail.
Stefan Lasiewski

21
@StefanLasiewski, taililk önce sonsuza kadar süren (kelimenin tam anlamıyla) girdi dosyasının sonuna gitmeye çalışır.
Gilles

Ah, böyle bir cihaz olsaydı 'kuyruk / dev / sonsuz' gibi.
Stefan Lasiewski

3
@StefanLasiewski Çeşitliliği beğenmiyorsanız, siz de var /dev/zero.
Gilles

35

Sözde rasgele verilerin yeterli olduğunu varsayarsak, dd if=/dev/urandom of=target-file bs=1M count=1000istediğiniz şeyi yapar.

dd (1) bir girdi dosyasındaki veri bloklarını okuyacak ve bunları bir çıktı dosyasına yazacaktır. Komut satırı dili biraz tuhaf, ama temellerine hakim olmaya değecek gerçekten faydalı araçlardan biri.

Bu durumda ifgirdi dosyası, ofçıktı dosyası, bs"blok boyutu" - ve boyutu daha rahat ayarlamak için GNU uzantısını kullandım. ( ddGNU uzantınız yoksa, 1048576'yı da kullanabilirsiniz .) countOkunacak ifve yazılacak blok sayısıdır of.

/dev/urandom/dev/randomBecuase'den daha iyi bir seçimdir , Linux'ta, gerçekten rastgele verilerin tükenmesinin engellenmesinden ziyade güçlü sahte rastgele verilere geri dönecektir.

Ayrıca, http://www.random.org/ adresine , kendiniz oluşturmak zorunda kalmadan rastgele veri elde etmenin başka bir yolu olarak bakmak isteyebilirsiniz .


3
Bir not - gibi teknik özellikler 1Mher standart ddmodelde mevcut değildir . Sürümünüz ddetkilenirse, kullanın bs=1048576.
Chris Down,

4
Örnek komut, her biri 1 MB boyutunda 1.000.000 blokluk bir dosya oluşturacaktır. Bu yaklaşık 1 TB (1M x 1 MB), 1 GB değil (1K x 1 MB olacaktır). Bir yana, bir noktaya kadar, blok büyüklüğünün arttırılması ve blok sayısının azaltılması, belirli bir miktardaki çıktı verisi için daha iyi verim sağlama eğilimindedir.
12'de bir CVn

2
while true;do head /dev/urandom | tr -dc A-Za-z0-9;done | head -c 5000K | tee  5000kb

Bunu 5 MB rasgele karakter verisi oluşturmak için kullanılır. Farklı bir boyuta ihtiyacınız varsa -c, kafanın değerini değiştirin, dosya adını değiştirin, uygulayın ve işlem tamamlanana kadar bekleyin.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.