라는 파일을 생성하고 싶습니다 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