특정 크기의 파일을 생성하시겠습니까?

특정 크기의 파일을 생성하시겠습니까?

라는 파일을 생성하고 싶습니다 example.file. 사용할 수 있습니다.

touch example.file

하지만 파일 크기를 정확히 24MB로 만들고 싶습니다. 터치에 대한 맨페이지를 확인했지만 해당 매개변수가 없습니다. 특정 크기의 파일을 생성하는 쉬운 방법이 있습니까?

답변1

dd를 사용할 수 있습니다:

dd if=/dev/zero of=output.dat  bs=24M  count=1

또는

dd if=/dev/zero of=output.dat  bs=1M  count=24

또는 Mac에서는

dd if=/dev/zero of=output.dat  bs=1m  count=24

답변2

내장되지 않은 Linux 또는 Cygwin(또는 GNU coreutils가 있는 모든 시스템) 및 FreeBSD에서:

truncate -s 24m example.file

그러면 널 바이트로 가득 찬 파일이 생성됩니다. 파일이 이미 존재하고 더 작은 경우 null 바이트를 사용하여 요청된 크기로 확장합니다. 파일이 이미 존재하고 더 큰 경우 요청한 크기로 잘립니다.

NULL 바이트는 디스크 공간을 차지하지 않으며 파일은스파스 파일.

많은 시스템에서 head -c 24m </dev/zero >example.file널 바이트로 채워진 비희소 파일을 만듭니다. 이 옵션을 시스템에서 head사용할 수 없는 경우 -c(일반적이지만 POSIX에는 존재하지 않음) dd bs=1024k count=24 </dev/zero >example.file이를 사용할 수 있습니다(POSIX 호환).

답변3

파일 내용에 신경 쓰지 않는다면 다음을 사용하는 것보다 훨씬 빠릅니다 dd.

fallocate -l 24M filename

분명히 dd최신 시스템에서는 24MB 파일로 작업하는 데 시간이 걸리지 않지만 더 큰 파일은 눈에 띄게 느려질 수 있습니다.

답변4

인용하다기타 요약:

  • 자르기
    • truncate -s 24M example.file
  • 오류 위치
    • fallocate -l $((24*1024*1024)) example.file
  • 머리
    • 무작위 데이터
      • head -c 24MB /dev/urandom > example.file
    • 제로 데이터
      • head -c 24MB /dev/zero > example.file
  • DD
    • dd if=/dev/urandom of=example.file bs=24MB count=1
      • dd if=/dev/urandom of=example.file bs=4MB count=6

관련 정보