srm (Unix)

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search
Secure Remove
srm securely erasing a text file.
srm securely erasing a text file.
Repository Edit this at Wikidata

srm (or Secure Remove) is a command line utility for Unix-like computer systems for secure file deletion.

Platform-Specific Behaviours and Bugs[edit]

Filesystems with Hard Links[edit]

Attempting to secure delete a file with multiple hard links results in a warning from srm stating that the current access path has been unlinked, but the data itself was not overwritten or truncated. This is an undocumented feature of srm 1.2.8 on Mac OS X 10.9,[1] and is erroneously documented in 1.2.11 as a behaviour activated by the OpenBSD rm-compatible option -P.[2] However, in both the OS X and SourceForge srm implementations, the behaviour of unlinking but not overwriting multi-linked files is always active, as long as the platform reports hard links.[3][4]

srm 1.2.8 on Mac OS X 10.9[5] has a -n option, which means "overwrite file, but do not rename or unlink it."[1] However, if the file has multiple links, the multiple-link file data protection feature activates first, removing the file, even though the -n option specifies "do not rename or unlink the file".[3] The -n option has been removed from the code and manual of srm version 1.2.11, the latest version. As a consequence, this option/feature conflict does not occur.[2][6]

OS X[edit]

A number of file systems support file forks (called resource forks and named forks on OS X (particularly HFS+), and alternate data streams on NTFS), or extended attributes. However, OS X is the only platform on which srm securely deletes any of this additional data in files.[7] On OS X, only the most common non-data fork, the resource fork, is handled in this way.[3] This support was included in Apple’s srm 1.2.8 [5][8] and Sourceforge’s srm 1.2.9.[9]


In srm 1.2.11, released on 25 November 2010,[10] the OpenBSD rm-compatible option, -P, is documented have an overwriting pattern matching OpenBSD's rm.[2] Additional functionality which protects multi-linked files is documented under the OpenBSD-compatible option, but is actually always active.[2][3][4]


When securely deleting files recursively, srm 1.2.11 is unable to determine device boundaries on Windows. Therefore, the -x option, which restricts srm to one file system, is not supported.[2]


Srm is at least included in Debian Linux distribution.

See also[edit]


  1. ^ a b doj, null_pointer at sourceforge (20 September 2004). "srm - securely remove files or directories". srm 1.2.8, OS X Version 10.9. Man Pages Section 1: Tools: Apple Inc. Retrieved 7 January 2014.
  2. ^ a b c d e Matt Gauthier. "srm - securely remove files or directories". srm 1.2.11. Man Pages Section 1: Tools. Retrieved 7 January 2014.
  3. ^ a b Apple Inc. "Apple - Open Source". Darwin 13.0, OS X Version 10.9. Apple Inc. Retrieved 7 January 2014.
  4. ^ doj, null_pointer at sourceforge (9 June 2011). "srm main.c" (C Source). srm 1.2.11, main.c CVS 1.16. Retrieved 7 January 2014.
  5. ^ doj, null_pointer at sourceforge (24 December 2013). "srm TODO" (Plain Text). srm 1.2.11, TODO CVS 1.34. Retrieved 7 January 2014.
  6. ^ doj, null_pointer at sourceforge (22 November 2010). "srm README.OsX (sic)" (Plain Text). srm 1.2.11, README.OsX (sic) CVS 1.2. Retrieved 7 January 2014.
  7. ^ doj, null_pointer at sourceforge (25 November 2010). "srm ChangeLog 2008-07-08" (Plain Text). srm 1.2.11, ChangeLog CVS 1.4. Retrieved 7 January 2014.
  8. ^ doj, null_pointer at sourceforge. "secure rm - Browse files at". Retrieved 7 January 2014.

External links[edit]