2010-06-04 3 views
1

의 파일이 나는 종종내가 원하는 경우 "제로"1의

dd if=/dev/zero of=1gb.dd bs=1M count=1024 

또는 심지어

dd if=/dev/urandom of=1gb.dd bs=1M count=1024 
dd if=/dev/random of=1gb.dd bs=1M count=1024 

그러나 같은 트릭으로 특정 크기의 파일을 만듭니다하는 방법 0 또는 무작위 대신 1을 모두 얻으시겠습니까?

답변

2

무작위 데이터의 경우 거의 모든 경우에 /dev/urandom을 사용하십시오. (당신은 또한 /dev/random를 사용할 수 있지만 엔트로피 바인딩 때문에 그것은 훨씬 느리다 urandom이 PRNG random에서하는 자기 씨앗입니다..) 비제 파일의 경우

,이 같은 것을 건의 할 것입니다 :

perl -e 'print chr(0xff) x 1000' > t 

분명히 0xff와 1000을 취향에 맞게 사용자 정의하십시오. 이 1GB로 도착하기 전에

touch shred.out; yes $'\xff' | tr -d $'\n' | shred --random-source=/dev/stdin --size=1G --iterations=1 shred.out 

흥미롭게도,이 유사한 명령은 중지 :

+1

'python -c "print chr (0x31) * 1000"> t'단지 파이썬 맛이났다. – zdav

-2

dd 뒤에 다른 명령을 추가하십시오.

sed 's/0/1/g' file.txt 

모든 0을 1로 대체합니다.

아마 더 나은 거기 솔루션,하지만 그

편집 :-) 작동합니다 : 중 새 파일에 그에서 파이프에 당신은 실제로해야 결과를 나 같은 파일을 대체합니다. sed는 기본적으로 화면 (IIRC)에 인쇄합니다.

+0

sed가 1Gb 파일을 얼마나 오래 가져올 지 궁금합니다. – DVK

+11

잘못되었습니다./dev/zero는 모든 비트가 0 (0x00)입니다. 귀하의 sed 명령은 ASCII 0 자리 (0x30)를 찾고 있습니다. –

1

이것은 crazyscot의 대답 펄 명령보다 약간 더 오래 dd if=/dev/zero로 약 4 시간이 걸리지 만

yes $'\xff' | tr -d $'\n' | dd if=/dev/stdin of=1gb.dd bs=1M count=1024 
+1

독창성에 대한 +1 :] – DRL