xref: /dragonfly/bin/rm/rm.1 (revision 7bc7e232)
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