Ubuntu - Dummy File 더미 파일 생성

dd

bash
# 1GB 크기의 더미 파일 생성 (img는 임시)
dd if=/dev/zero of=dd_dummy_file.img bs=1G count=1

# 500MB 크기의 더미 파일 생성 (img는 임시)
dd if=/dev/zero of=dd_dummy_file.img bs=500M count=1

dd if=/dev/zero of=dd_dummy_file.img bs=500M count=1

dd: 유틸리티의 이름

if=/dev/zero: 입력 파일(input file)을 지정

  • /dev/zero 무한히 0을 생성하는 특수 파일
  • /dev/urandom 넌블로킹 방식으로 빠르게 무작위 데이터를 생성
  • /dev/random 고품질의 무작위 데이터를 생성하지만, 엔트로피가 부족할 경우 출력이 지연

of=dummy_file.img: 출력 파일(output file)을 지정, dummy_file.img라는 이름의 파일로 데이터를 기록

bs=1G: 블록 크기(block size)를 설정, 1GB 크기의 블록을 사용

count=1: 블록의 개수를 설정, 1개의 블록만 기록

fallocate

bash
# 1GB 크기의 더미 파일 생성 (img는 임시)
fallocate -l 1G fallocate_dummy_file.img

# 500MB 크기의 더미 파일 생성 (img는 임시)
fallocate -l 500M fallocate_dummy_file.img

-l 옵션은 생성할 파일의 크기를 지정

truncate

bash
# 1GB 크기의 더미 파일 생성 (img는 임시)
truncate -s 1G dummy_file.img

base64

bash
# 1GB 크기의 더미 파일 생성 (img는 임시)
base64 /dev/urandom | head -c 1G > dummy_file.img

base64 /dev/urandom | head -c 1G > dummy_file.img

`base64 /dev/urandom`:

  • /dev/zero 무한히 0을 생성하는 특수 파일
  • /dev/random 넌블로킹 방식으로 빠르게 무작위 데이터를 생성
  • /dev/urandom 고품질의 무작위 데이터를 생성하지만, 엔트로피가 부족할 경우 출력이 지연

base64: 무작위 데이터를 base64 인코딩 형식으로 변환

base64 인코딩은 이진 데이터를 텍스트 형식으로 인코딩

| (파이프라인):

  • 파이프라인(|)을 사용하여 첫 번째 명령어의 출력을 다음 명령어의 입력으로 전달

head -c 1G:

  • head: 파일의 처음 부분을 출력하는 명령어
  • -c 1G: 1GB(기가바이트) 크기의 데이터를 읽어옵니다. 여기서 1G는 1GB를 의미

> (리디렉션):

  • > 기호는 명령어의 출력을 파일로 리디렉션, 기존 파일을 덮어쓰는 방식

dummy_file.img:

  • 출력 데이터를 저장할 파일 이름입니다. 여기서는 dummy_file.img라는 이름의 파일로 데이터를 저장

명령어 비교 표

도구 특징 장점 단점 성능 용도
dd 전통적인 유닉스 도구, 저수준 블록 복사 - 높은 호환성 - 다양한 입출력 옵션 - 시스템 전반에 걸쳐 안정적 - 상대적으로 느림 - 리소스 사용량 높음 중간 시스템 진단 대용량 파일 생성 디스크 성능 테스트
fallocate 파일 시스템 레벨 할당 - 가장 빠른 방식 - 최소 시스템 리소스 사용 - 실제 디스크 공간 즉시 할당 - 일부 파일 시스템에서 미지원 - 실제 데이터 미기록 매우 빠름 빠른 대용량 파일 생성 테스트 환경 준비
truncate 파일 크기 조작에 특화 - 매우 간단한 명령어 - 최소 시스템 오버헤드 - 빠른 실행 - 실제 데이터 없음 - 일부 제한된 옵션 빠름 빠른 파일 크기 조정 임시 파일 생성
base64 랜덤 데이터 생성 - 실제 랜덤 데이터 생성 - 암호화된 데이터 유사 - 생성 속도 느림 - 높은 CPU 사용률 - 대용량 파일에 비효율적 느림 암호화 테스트 랜덤 데이터 필요 시 보안 관련 시뮬레이션