새 파일을 만들고 1GB의 임의 데이터로 채우려면 어떻게 해야 합니까? 일부 소프트웨어를 테스트하려면 이것이 필요합니다.
나는 /dev/random
또는 을 사용하는 것을 선호합니다 /dev/urandom
.
답변1
대부분의 단일 머신에서:
head -c 1G </dev/urandom >myfile
접미사를 head
이해하지 못하는 경우 바이트 크기를 지정할 수 있습니다.G
head -c 1073741824 </dev/urandom >myfile
head
이 옵션을 이해하지 못한다면 ( -c
일반적이지만 POSIX는 아닙니다. 아마도 OpenBSD를 사용하고 있을 것입니다):
dd bs=1024 count=1048576 </dev/urandom >myfile
답변2
의사 난수 데이터가 충분하다고 가정 dd if=/dev/urandom of=target-file bs=1M count=1000
하면 원하는 대로 작동합니다.
일(1)데이터 블록은 입력 파일에서 읽혀지고 출력 파일에 기록됩니다. 명령줄 언어는 약간 특이하지만 기본 사항을 숙지할 가치가 있는 정말 유용한 도구 중 하나입니다.
이 경우 if
는 입력 파일이고, of
는 출력 파일이고, bs
는 "블록 크기"입니다. 저는 크기를 더 쉽게 설정하기 위해 GNU 확장을 사용합니다. ( dd
GNU 확장이 없으면 1048576을 사용할 수도 있습니다. )는 읽고 쓸 블록 수입니다 count
.if
of
/dev/urandom
/dev/random
Linux에서는 실제 무작위 데이터가 소진되면 차단 대신 강력한 의사 무작위 데이터로 되돌아가기 때문에 더 나은 선택입니다 .
당신은 또한 살펴보고 싶을 수도 있습니다http://www.random.org/직접 생성하지 않고 임의의 데이터를 얻는 또 다른 방법입니다.
답변3
/dev/random/
/dev/urandom
우수한 대안 사용 및/또는 사용암호화 방식으로안전한의사 난수 생성기(CSPRNG) openssl에서 제공합니다. 드물지만 필요한 경우에는 알고리즘과 암호화 방법을 선택할 수도 있습니다.
size=$( echo 1G | numfmt --from=iec ) # 1 G ==> 1073741824
openssl rand -out myfile "$size"
Base64가 필요한 경우:
openssl rand -base64 -out myfile "$size"
세부정보를 읽어보세요 man rand
.
답변4
이 솔루션은 무작위를 사용하지 않지만 매뉴얼 페이지를 사용하여 많은 양의 데이터를 생성합니다. 그러나 이는 최대 크기를 보장하지 않으므로 cat
필요한 크기를 얻기 위해 몇 초 동안 반복해야 할 수도 있습니다 .
man curl > /tmp/man-curl
또는 더 큰 크기가 필요한 경우,
for i in {1..10}; do man curl >> /tmp/man-curl; done