1.\" Copyright (c) 1990, 1993, 1994 2.\" The Regents of the University of California. All rights reserved. 3.\" 4.\" This code is derived from software contributed to Berkeley by 5.\" the Institute of Electrical and Electronics Engineers, Inc. 6.\" 7.\" Redistribution and use in source and binary forms, with or without 8.\" modification, are permitted provided that the following conditions 9.\" are met: 10.\" 1. Redistributions of source code must retain the above copyright 11.\" notice, this list of conditions and the following disclaimer. 12.\" 2. Redistributions in binary form must reproduce the above copyright 13.\" notice, this list of conditions and the following disclaimer in the 14.\" documentation and/or other materials provided with the distribution. 15.\" 3. All advertising materials mentioning features or use of this software 16.\" must display the following acknowledgement: 17.\" This product includes software developed by the University of 18.\" California, Berkeley and its contributors. 19.\" 4. Neither the name of the University nor the names of its contributors 20.\" may be used to endorse or promote products derived from this software 21.\" without specific prior written permission. 22.\" 23.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 24.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 25.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 26.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 27.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 28.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 29.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 30.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 31.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 32.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 33.\" SUCH DAMAGE. 34.\" 35.\" @(#)rm.1 8.5 (Berkeley) 12/5/94 36.\" $FreeBSD: src/bin/rm/rm.1,v 1.19.2.6 2003/02/04 22:10:42 trhodes Exp $ 37.\" $DragonFly: src/bin/rm/rm.1,v 1.12 2007/01/02 23:42:20 swildner Exp $ 38.\" 39.Dd January 28, 1999 40.Dt RM 1 41.Os 42.Sh NAME 43.Nm rm , 44.Nm unlink 45.Nd remove directory entries 46.Sh SYNOPSIS 47.Nm 48.Op Fl dfiIPRrvW 49.Ar 50.Nm unlink 51.Ar file 52.Sh DESCRIPTION 53The 54.Nm 55utility attempts to remove the non-directory type files specified on the 56command line. 57If the permissions of the file do not permit writing, and the standard 58input device is a terminal, the user is prompted (on the standard error 59output) for confirmation. 60.Pp 61The options are as follows: 62.Bl -tag -width Fl 63.It Fl d 64Attempt to remove directories as well as other types of files. 65.It Fl f 66Attempt to remove the files without prompting for confirmation, 67regardless of the file's permissions. 68If the file does not exist, do not display a diagnostic message or modify 69the exit status to reflect an error. 70The 71.Fl f 72option overrides any previous 73.Fl i 74options. 75.It Fl i 76Request confirmation before attempting to remove each file, regardless of 77the file's permissions, or whether or not the standard input device is a 78terminal. 79The 80.Fl i 81option overrides any previous 82.Fl f 83options. 84.It Fl I 85Request confirmation once if more than three files are being removed or if a 86directory is being recursively removed. This option only applies when the 87.Nm 88utility is run in the foreground. 89This is a far less intrusive option than 90.Fl i 91yet provides almost the same level of protection against mistakes. 92.It Fl P 93Overwrite regular files before deleting them. 94Files are overwritten three times, first with the byte pattern 0xff, 95then 0x00, and then 0xff again, before they are deleted. 96.Pp 97A file with a link count greater than one will neither be overwritten nor 98removed, and a warning will be issued. 99.It Fl R 100Attempt to remove the file hierarchy rooted in each file argument. 101The 102.Fl R 103option implies the 104.Fl d 105option. 106If the 107.Fl i 108option is specified, the user is prompted for confirmation before 109each directory's contents are processed (as well as before the attempt 110is made to remove the directory). 111If the user does not respond affirmatively, the file hierarchy rooted in 112that directory is skipped. 113.Pp 114.It Fl r 115Equivalent to 116.Fl R . 117.It Fl v 118Be verbose when deleting files, showing them as they are removed. 119.It Fl W 120Attempt to undelete the named files. 121Currently, this option can only be used to recover 122files covered by whiteouts. 123.El 124.Pp 125The 126.Nm 127utility removes symbolic links, not the files referenced by the links. 128.Pp 129It is an error to attempt to remove the files 130.Dq .\& 131or 132.Dq .. . 133.Pp 134When the utility is called as 135.Nm unlink , 136only one argument, 137which must not be a directory, 138may be supplied. 139No options may be supplied in this simple mode of operation, 140which performs an 141.Xr unlink 2 142operation on the passed argument. 143.Pp 144The 145.Nm 146utility exits 0 if all of the named files or file hierarchies were removed, 147or if the 148.Fl f 149option was specified and all of the existing files or file hierarchies were 150removed. 151If an error occurs, 152.Nm 153exits with a value >0. 154.Pp 155If 156.Nm 157receives a 158.Dv SIGINFO 159(see the 160.Cm status 161argument for 162.Xr stty 1 ) 163signal, the current file or directory being removed 164will be written to standard error. 165.Sh NOTE 166The 167.Nm 168command uses 169.Xr getopt 3 170to parse its arguments, which allows it to accept 171the 172.Sq Li -- 173option which will cause it to stop processing flag options at that 174point. This will allow the removal of file names that begin 175with a dash 176.Pq Sq - . 177For example: 178.Dl rm -- -filename 179The same behavior can be obtained by using an absolute or relative 180path reference. For example: 181.Dl rm /home/user/-filename 182.Dl rm ./-filename 183.Sh COMPATIBILITY 184The 185.Nm 186utility differs from historical implementations in that the 187.Fl f 188option only masks attempts to remove non-existent files instead of 189masking a large variety of errors. 190The 191.Fl v 192option is non-standard and its use in scripts is not recommended. 193.Pp 194Also, historical 195.Bx 196implementations prompted on the standard output, 197not the standard error output. 198.Sh SEE ALSO 199.Xr chflags 1 , 200.Xr rmdir 1 , 201.Xr undelete 2 , 202.Xr unlink 2 , 203.Xr fts 3 , 204.Xr getopt 3 , 205.Xr symlink 7 206.Sh STANDARDS 207The 208.Nm 209command conforms to 210.St -p1003.2 . 211.Pp 212The simplified 213.Nm unlink 214command conforms to 215.St -susv2 . 216.Sh HISTORY 217A 218.Nm 219command appeared in 220.At v1 . 221.Sh BUGS 222The 223.Fl P 224option assumes that the underlying file system is a fixed-block file 225system. 226UFS is a fixed-block file system, LFS is not. 227In addition, only regular files are overwritten, other types of files 228are not. Hardlinked regular files will not be overwritten or removed, 229possibly leading to unintended behavior. It is arguable which is the MORE 230unintended behavior. 231