본문 바로가기

리눅스

truncate 명령어

반응형

truncate 명령어

파일의 크기를 지정한 크기로 즉시 변경하는 Linux/Unix 유틸리티입니다.

truncate란?

truncate는 파일의 크기를 지정한 크기로 즉시 변경하는 Linux/Unix 유틸리티입니다. 로그 파일 초기화, 테스트용 더미 파일 생성, 파일 용량 조절 등 다양한 상황에서 유용하게 활용됩니다.

핵심 특징

  • 파일 내용 무시: 기존 내용은 유지하지 않고 크기만 조정합니다.
  • 크기 축소: 지정 크기보다 큰 부분은 잘립니다.
  • 크기 확장: 늘어난 부분은 NULL 바이트(0x00)로 채워집니다.
  • 자동 생성: 파일이 없으면 새로 생성할 수 있습니다.

기본 구문

truncate [OPTION]... FILE...

주요 옵션

  • -s, --size=SIZE : 파일 크기 지정
  • -c, --no-create : 파일이 없으면 생성하지 않음
  • -r, --reference=FILE : 참조 파일과 동일한 크기로 설정

SIZE 지정 방식

단위 사용[K = KB(1024 bytes), M = MB, G = GB, T = TB]

  • 10MB 크기로 설정
truncate -s 10M file.txt
  • 1GB 크기로 설정
truncate -s 1G bigfile.bin

정확한 바이트 지정

  • 파일 크기를 정확히 1024바이트로 설정
truncate -s 1024 file.txt

기존 크기 기준 연산

  • +SIZE : 기존 크기 + SIZE
  • -SIZE : 기존 크기 - SIZE
  • %SIZE : SIZE의 배수로 맞춤

상대적 크기 조정

truncate -s +100K file.txt   # 100KB 증가
truncate -s -1M file.txt     # 1MB 감소
truncate -s %4K file.txt     # 4KB 배수로 맞춤
728x90

자주 쓰는 실전 예제

로그 파일 비우기(가장 흔한 용도)

truncate -s 0 /var/log/application.log
  • 파일을 삭제하지 않고 크기만 0으로 초기화
  • 권한/파일 핸들 유지 → 운영 환경에서 안전
  • > file 또는 : > file 보다 명시적이고 가독성 좋음

테스트용 더미 파일 생성

truncate -s 1G dummy.img
  • 실제 데이터 없이 1GB 파일 생성
  • dd보다 훨씬 빠름

파일 크기 강제 제한

truncate -s 100M large_file.log
  • 100MB 초과 데이터 제거

참조 파일과 동일한 크기로 설정

truncate -s -r reference.bin target.bin

파일이 없으면 실패하도록

truncate -c -s 0 maybe_exists.log
  • 실수로 새 파일 생성 방지

데이터 복구 불가

cp important.log important.log.backup
truncate -s 0 important.log
  • 데이터는 즉시 삭제, 복구 매우 어려움

 

728x90
반응형