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

   -f, --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)

   -u     truncate 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

   --help 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  disk.   The
   default mode is 'wipesync', but note it can be expensive.

   CAUTION:  Note  that  shred relies on a very important assumption: that
   the file system overwrites data in place.  This is the traditional  way
   to  do  things, but many modern file system designs do not satisfy this
   assumption.  The following are examples of file systems on which  shred
   is  not  effective,  or  is  not guaranteed to be effective in all file
   system modes:

   * log-structured or journaled file systems, such as those supplied with
   AIX and Solaris (and JFS, ReiserFS, XFS, Ext3, etc.)

   *  file  systems  that  write  redundant data and carry on even if some
   writes fail, such as RAID-based file systems

   * file systems that make snapshots, such  as  Network  Appliance's  NFS

   * file systems that cache in temporary locations, such as NFS version 3

   * compressed file systems

   In the case of ext3 file systems, the  above  disclaimer  applies  (and
   shred  is  thus  of  limited  effectiveness) only in data=journal mode,
   which journals file data in addition to just  metadata.   In  both  the
   data=ordered  (default) and data=writeback modes, shred works as usual.
   Ext3 journaling modes can  be  changed  by  adding  the  data=something
   option  to  the  mount  options  for  a  particular  file system in the
   /etc/fstab file, as documented in the mount man page (man mount).

   In addition, file system backups and remote mirrors may contain  copies
   of the file that cannot be removed, and that will allow a shredded file
   to be recovered later.


   Written by Colin Plumb.


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


   Copyright  2016 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 at: <>
   or available locally via: info '(coreutils) shred invocation'

More Linux Commands

sleep(1) - delay for a specified amount of time (Man Page)
Pause for NUMBER seconds. SUFFIX may be s for seconds (the default), m for minutes, h for hours or d for days. Unlike most implementations that require NUMBER b

getgroups(2) - get/set list of supplementary group IDs......
getgroups() returns the supplementary group IDs of the calling process in list. The argument size should be set to the maximum number of items that can be store

Tk_UnmapWindow(3) - map or unmap a window - Linux man page
These procedures may be used to map and unmap windows managed by Tk. Tk_MapWindow maps the window given by tkwin, and also creates an X window corresponding to

texi2roff(1) - convert Texinfo documents for formatting by t
Texi2roff translates the named files from the Texinfo macro language for TeX to the language accepted by troff(1). Files are read and processed in order. If no

munmap(2) - map or unmap files or devices into memory.......
mmap() creates a new mapping in the virtual address space of the calling process. The starting address for the new mapping is specified in addr. The length argu

cprojl(3) - project into Riemann Sphere - Linux manual page
These functions project a point in the plane onto the surface of a Riemann Sphere, the one-point compactification of the complex plane. Each finite point z proj

dhcrelay(8) - Dynamic Host Configuration Protocol Relay Agen
The Internet Systems Consortium DHCP Relay Agent, dhcrelay, provides a means for relaying DHCP and BOOTP requests from a subnet to which no DHCP server is direc

rview(1) - Vi IMproved, a programmers text editor (ManPage)
Vim is a text editor that is upwards compatible to Vi. It can be used to edit all kinds of plain text. It is especially useful for editing programs. There are a

openat(2) - open a file relative to a directory file descrip
Given a pathname for a file, open() returns a file descriptor, a small, nonnegative integer for use in subsequent system calls (read(2), write(2), lseek(2), fcn

XIGetClientPointer(3) - set or get the ClientPointer device
The ClientPointer is the device that is percieved to be the core pointer for non-XI protocol requests and replies. Each time a protocol message needs device-dep

gnutls_handshake_set_max_packet_length(3) - API function....
This function will set the maximum size of all handshake messages. Handshakes over this size are rejected with GNUTLS_E_HANDSHAKE_TOO_LARGE error code. The defa

sleep(3) - Sleep for the specified number of seconds........
sleep() makes the calling thread sleep until seconds seconds have elapsed or a signal arrives which is not ignored. RETURN VALUE Zero if the requested time has

We can't live, work or learn in freedom unless the software we use is free.