shred - overwrite a file to hide its contents, and optionally delete it


shred [OPTION]... FILE...


Overwrite the specified FILE(s) repeatedly, in order to make it harder for even very expensive hardware probing to recover the data.

If FILE is -, shred standard output.

Mandatory arguments to long options are mandatory for short options too.
, --force

change permissions to allow writing if necessary

-n, --iterations=N

overwrite N times instead of the default (3)


get random bytes from FILE

-s, --size=N

shred this many bytes (suffixes like K, M, G accepted)


deallocate and remove file after overwriting


like -u but give control on HOW to delete; See below

-v, --verbose

show progress

-x, --exact

do not round file sizes up to the next full block;

this is the default for non-regular files

-z, --zero

add a final overwrite with zeros to hide shredding


display this help and exit


output version information and exit

Delete FILE(s) if --remove (-u) is specified. The default is not to remove the files because it is common to operate on device files like /dev/hda, and those files usually should not be removed. The optional HOW parameter indicates how to remove a directory entry: ’unlink’ => use a standard unlink call. ’wipe’ => also first obfuscate bytes in the name. ’wipesync’ => also sync each obfuscated byte to the device. The default mode is ’wipesync’, but note it can be expensive.

CAUTION: shred assumes the file system and hardware overwrite data in place. Although this is common, many platforms operate otherwise. Also, backups and mirrors may contain unremovable copies that will let a shredded file be recovered later. See the GNU coreutils manual for details.


Written by Colin Plumb.


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


Copyright © 2023 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.


Full documentation <>;
or available locally via: info '(coreutils) shred invocation'