add whiteouts
[unix-history] / usr / src / bin / rm / rm.1
index 37d1dcd..928b3ce 100644 (file)
@@ -1,20 +1,23 @@
-.\" Copyright (c) 1990 The Regents of the University of California.
-.\" All rights reserved.
+.\" Copyright (c) 1990, 1993, 1994
+.\"    The Regents of the University of California.  All rights reserved.
 .\"
 .\"
-.\" %sccs.include.redist.man%
+.\" This code is derived from software contributed to Berkeley by
+.\" the Institute of Electrical and Electronics Engineers, Inc.
 .\"
 .\"
-.\"     @(#)rm.1       6.5 (Berkeley) %G%
+.\" %sccs.include.redist.roff%
+.\"
+.\"    @(#)rm.1        8.3 (Berkeley) %G%
 .\"
 .Dd 
 .Dt RM 1
 .\"
 .Dd 
 .Dt RM 1
-.Os BSD 4.4
+.Os
 .Sh NAME
 .Nm rm
 .Nd remove directory entries
 .Sh SYNOPSIS
 .Nm rm
 .Sh NAME
 .Nm rm
 .Nd remove directory entries
 .Sh SYNOPSIS
 .Nm rm
-.Op Fl f Li \&| Fl i
-.Op Fl dRr
+.Op Fl f | Fl i
+.Op Fl dPRrW
 .Ar file ...
 .Sh DESCRIPTION
 The
 .Ar file ...
 .Sh DESCRIPTION
 The
@@ -22,13 +25,14 @@ The
 utility attempts to remove the non-directory type files specified on the
 command line.
 If the permissions of the file do not permit writing, and the standard
 utility attempts to remove the non-directory type files specified on the
 command line.
 If the permissions of the file do not permit writing, and the standard
-input device is a terminal, the user is prompted for confirmation.
+input device is a terminal, the user is prompted (on the standard error
+output) for confirmation.
 .Pp
 .Pp
-The following options are available:
-.Tw 8n
-.Tp Fl d
+The options are as follows:
+.Bl -tag -width flag
+.It Fl d
 Attempt to remove directories as well as other types of files.
 Attempt to remove directories as well as other types of files.
-.Tp Fl f
+.It Fl f
 Attempt to remove the files without prompting for confirmation,
 regardless of the file's permissions.
 If the file does not exist, do not display a diagnostic message or modify
 Attempt to remove the files without prompting for confirmation,
 regardless of the file's permissions.
 If the file does not exist, do not display a diagnostic message or modify
@@ -38,7 +42,7 @@ The
 option overrides any previous
 .Fl i 
 options.
 option overrides any previous
 .Fl i 
 options.
-.Tp Fl i
+.It Fl i
 Request confirmation before attempting to remove each file, regardless of
 the file's permissions, or whether or not the standard input device is a
 terminal.
 Request confirmation before attempting to remove each file, regardless of
 the file's permissions, or whether or not the standard input device is a
 terminal.
@@ -47,7 +51,11 @@ The
 option overrides any previous
 .Fl f 
 options.
 option overrides any previous
 .Fl f 
 options.
-.Tp Fl R
+.It Fl P
+Overwrite regular files before deleting them.
+Files are overwritten three times, first with the byte pattern 0xff,
+then 0x00, and then 0xff again, before they are deleted.
+.It Fl R
 Attempt to remove the file hierarchy rooted in each file argument.
 The 
 .Fl R
 Attempt to remove the file hierarchy rooted in each file argument.
 The 
 .Fl R
@@ -62,16 +70,12 @@ is made to remove the directory).
 If the user does not respond affirmatively, the file hierarchy rooted in
 that directory is skipped.
 .Pp
 If the user does not respond affirmatively, the file hierarchy rooted in
 that directory is skipped.
 .Pp
-.Tp Fl r
+.It Fl r
 Equivalent to
 .Fl R .
 Equivalent to
 .Fl R .
-.Tp
-.Pp
-The following argument is available:
-.Tw Fl
-.Tp Ar file
-A pathname of a directory entry to be removed.
-.Tp
+.It Fl W
+Removes a whiteout.
+.El
 .Pp
 The
 .Nm rm
 .Pp
 The
 .Nm rm
@@ -81,21 +85,43 @@ It is an error to attempt to remove the files ``.'' and ``..''.
 .Pp
 The
 .Nm rm
 .Pp
 The
 .Nm rm
-utility exits with one of the following values:
-.Tw Ds
-.Tp Li 0
-All the named files were removed or the
+utility exits 0 if all of the named files or file hierarchies were removed,
+or if the
 .Fl f
 .Fl f
-option was specified and some of the directory entries did not exist.
-.Tp Li >0
-An error occurred.
-.Tp
+option was specified and all of the existing files or file hierarchies were
+removed.
+If an error occurs,
+.Nm rm
+exits with a value >0.
 .Sh SEE ALSO
 .Xr rmdir 1 ,
 .Sh SEE ALSO
 .Xr rmdir 1 ,
-.Xr stat 2 ,
 .Xr unlink 2 ,
 .Xr unlink 2 ,
-.Xr fts 3
+.Xr unwhiteout 2 ,
+.Xr fts 3 ,
+.Xr symlink 7
+.Sh BUGS
+The
+.Fl P
+option assumes that the underlying file system is a fixed-block file
+system.
+UFS is a fixed-block file system, LFS is not.
+In addition, only regular files are overwritten, other types of files
+are not.
+.Sh COMPATIBILITY
+The
+.Nm rm
+utility differs from historical implementations in that the
+.Fl f
+option only masks attempts to remove non-existent files instead of
+masking a large variety of errors.
+.Pp
+Also, historical
+.Bx
+implementations prompted on the standard output,
+not the standard error output.
 .Sh STANDARDS
 The
 .Nm rm
 .Sh STANDARDS
 The
 .Nm rm
-function is expected to be POSIX 1003.2 compatible.
+command is expected to be
+.St -p1003.2
+compatible.