SHRED(1) User Commands SHRED(1)

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.

change permissions to allow writing if necessary
overwrite N times instead of the default (3)
get random bytes from FILE
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
show progress
do not round file sizes up to the next full block;
this is the default for non-regular files
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 © 2024 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'

March 2024 GNU coreutils 9.5