임의의 데이터로 파일을 채우려면 어떻게해야합니까?


124

새 파일을 작성하고 1 기가 바이트의 임의 데이터로 채우려면 어떻게해야합니까? 일부 소프트웨어를 테스트하려면 이것이 필요합니다.

/dev/random또는을 선호합니다 /dev/urandom.


74
열기 vivi -w randomfile와 본 적이 있어요 누군가에게 vi프로그램을 종료합니다. ;)
와일드 카드

1
페이스 북 게시물에서 위의 의견을 좋아하게되었습니다! facebook.com/ProgrammersCreateLife/photos/a.241809332534619/…
Parixit

답변:


171

대부분의 유니스에서 :

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

당신이 경우 head이해하지 못하는 G접미사를 사용하면 바이트의 크기를 지정할 수 있습니다 :

head -c 1073741824 </dev/urandom >myfile

당신이 경우 head이해하지 못하는 -c옵션을 (이것은 일반적인하지만 POSIX의, 당신은 아마 오픈 BSD가) :

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

/dev/randomLinux에서는 사용 하지 마십시오 /dev/urandom.


1
가치 head가있는 것은 -c내 Solaris 10 시스템에서 이해하지 못합니다 .
rahmu

2
head읽을 수 /dev/urandom는 있지만 읽을 tail수없는 재미있는 내용입니다 .
Stefan Lasiewski

21
@StefanLasiewski는 tail먼저 입력 파일의 끝으로 가려고 시도합니다.
Gilles

아, 그런 장치가 있다면 'tail / dev / infinity`와 같습니다.
Stefan Lasiewski

3
@StefanLasiewski 당신이 /dev/zero다양성을 좋아하지 않는다면 당신도 있습니다.
Gilles

35

의사 랜덤 데이터가 충분하다고 가정 dd if=/dev/urandom of=target-file bs=1M count=1000하면 원하는 작업을 수행합니다.

dd (1) 은 입력 파일에서 데이터 블록을 읽고 출력 파일에 씁니다. 커맨드 라인 언어는 다소 기발하지만, 기본을 익힐 가치가있는 유용한 도구 중 하나입니다.

이 경우 if입력 파일, of출력 파일, bs"블록 크기"이며 GNU 확장을 사용하여 크기를보다 편리하게 설정했습니다. ( ddGNU 확장명이없는 경우 1048576을 사용할 수도 있습니다 .) count는 읽고 if쓸 수있는 블록 수입니다 of.

/dev/urandom/dev/randomLinux에서는 becuase 보다 더 나은 선택입니다 . 실제로 임의의 데이터가 소진되면 차단하지 않고 강력한 의사 난수 데이터로 대체됩니다.

http://www.random.org/ 를 직접 생성하지 않고 임의의 데이터를 얻는 또 다른 경로로 볼 수도 있습니다 .


3
참고 : 1M모든 표준 dd변형 에서 단위 사양과 같은 것은 아닙니다 . dd사용중인 버전 이 영향을받는 경우을 사용하십시오 bs=1048576.
Chris Down

4
예제 명령은 각각 크기가 1MB 인 1,000,000 개의 블록으로 구성된 파일을 만듭니다. 1GB (1K x 1MB)가 아니라 약 1TB (1M x 1MB)입니다. 한 가지 점으로, 블록 크기를 늘리고 블록 수를 줄이면 주어진 양의 출력 데이터에 대해 더 나은 처리량을 얻는 경향이 있습니다.
CVn

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

이를 사용하여 5MB의 임의 문자 데이터를 생성합니다. 다른 크기가 필요한 경우 -chead 값을 변경하고 출력 파일 이름을 변경 한 후 실행하고 실행이 완료 될 때까지 기다리십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.