0바이트가 많이 포함된 테스트 파일을 만듭니다.

0바이트가 많이 포함된 테스트 파일을 만듭니다.

빈 파일을 만드는 방법을 알고 있습니다.

touch /var/tmp/nullbytes

하지만 bash를 사용하여 명령줄에서 null 바이트만 포함하는 1MB 파일을 어떻게 만들 수 있습니까?

답변1

GNU 사용 truncate:

truncate -s 1M nullbytes

( nullbytes미리 존재하지 않는다고 가정) 1MB의 스파스 파일이 생성됩니다. 파일은 0으로 가득 차 보이지만 디스크 공간을 차지하지 않습니다.

그렇지 않은 경우 truncate다음을 사용할 수 있습니다 dd.

dd bs=1048576 seek=1 of=nullbytes count=0

(일부 dd구현에서는 1048576을 로 바꿀 수 있습니다 1M)

디스크 공간을 원할 경우할당된, Linux 및 일부 파일 시스템에서는 다음을 수행할 수 있습니다.

fallocate -l 1M nullbytes

이는 실제로 데이터를 디스크에 쓰지 않고 공간을 할당합니다(공간은 예약되어 있지만 초기화되지 않은 것으로 표시됨).

dd < /dev/zero bs=1048576 count=1 > nullbytes

0은 실제로 디스크에 기록됩니다. 이는 효율성이 가장 낮지만 파일에 액세스하는 동안 드라이브를 회전시켜야 하는 경우 이것이 원하는 것입니다.

dd또는 NUL 바이트 생성을 속이는 @mikeserv의 방법 :

dd bs=1048576 count=1 conv=sync,noerror 0> /dev/null > nullbytes

GNU 대안에서는 head블록 크기를 지정할 필요가 없습니다(1M은 괜찮지만 10G는 그렇지 않습니다):

head -c 1M < /dev/zero > nullbytes

또는 진행률 표시줄을 가져옵니다.

pv -Ss 1M < /dev/zero > nullbytes

답변2

dd if=/dev/zero of=/var/tmp/nullbytes count=1 bs=1M

관련 정보