---
name: "truncate"
section: "1"
platform: "linux"
package: "coreutils"
version: "9.12-2"
release: "Arch Linux 2026-11-01"
platforms: ["linux", "freebsd", "macos"]
url: "https://new.carta.tech/truncate"
---

# truncate(1)

shrink or extend the size of a file to the specified size

## NAME

truncate - shrink or extend the size of a file to the specified size

## SYNOPSIS

**truncate** *OPTION*... *FILE*...

## DESCRIPTION

Shrink or extend the size of each FILE to the specified size

A FILE argument that does not exist is created.

If a FILE is larger than the specified size, the extra data is lost. If a FILE is shorter, it is extended and the sparse extended part (hole) reads as zero bytes.

Mandatory arguments to long options are mandatory for short options too.

- **-c, --no-create**

  do not create any files

- **-o, --io-blocks**

  treat SIZE as number of IO blocks instead of bytes

- **-r, --reference=RFILE**

  base size on RFILE

- **-s, --size=SIZE**

  set or adjust the file size by SIZE bytes

- **--help**

  display this help and exit

- **--version**

  output version information and exit

The SIZE argument is an integer and optional unit (example: 10K is 10\*1024). Units are K,M,G,T,P,E,Z,Y,R,Q (powers of 1024) or KB,MB,... (powers of 1000). Binary prefixes can be used, too: KiB=K, MiB=M, and so on.

SIZE may also be prefixed by one of the following modifying characters: '+' extend by, '-' reduce by, '\<' at most, '\>' at least, '/' round down to multiple of, '%' round up to multiple of.

## AUTHOR

Written by Padraig Brady.

## REPORTING BUGS

Report bugs to: \<bug-coreutils@gnu.org\>.\
 Report any translation bugs to: \<https://translationproject.org/team/\>.\
 GNU coreutils home page: \<https://www.gnu.org/software/coreutils/\>\
 General help using GNU software: \<https://www.gnu.org/gethelp/\>

## COPYRIGHT

Copyright © 2026 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later \<https://gnu.org/licenses/gpl.html\>.\
 This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.

## SEE ALSO

[**dd**(1)](/dd/1.md), [**truncate**(2)](/truncate/2.md), [**ftruncate**(2)](/ftruncate/2.md)

Full documentation \<https://www.gnu.org/software/coreutils/truncate\>\
 or available locally via: info '(coreutils) truncate invocation'
