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


Set a size of 10 GB to an exsting file, or create a new file with the specified size

>_ truncate -s [10G] [filename]

Extend the file size by 50M, fill with holes (which reads as zero bytes)

>_ truncate -s +[50M] [filename]

Shrink the file by 2GiB, by removing data from the end of file

>_ truncate -s -[2G] [filename]

Empty the file's content

>_ truncate -s 0 [filename]


truncate OPTION ... FILE ...


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 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 (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.


GNU coreutils online help: <>
Report any translation bugs to <>


Copyright 2019 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <>.
This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.


dd(1), truncate(2), ftruncate(2) Full documentation <> or available locally via: info truncate invocation


Written by Padraig Brady.

Copied to clipboard
free 100$ digital ocean credit