RM(1)                           User Commands                          RM(1)
NAME
     rm, 
rmdir - remove directory entries
SYNOPSIS
     /usr/bin/rm [
-f] [
-i] 
file ...     /usr/bin/rm -rR [
-f] [
-i] 
dirname ... [
file ...]     
/usr/xpg4/bin/rm [
-fiRr] 
file ...     /usr/bin/rmdir [
-ps] 
dirname   ksh93     /usr/bin/rmdir [
-eps] 
dirname ...DESCRIPTION
   /usr/bin/rm /usr/xpg4/bin/rm     The 
rm utility removes the directory entry specified by each 
file     argument.  If a file has no write permission and the standard input is
     a terminal, the full set of permissions (in octal) for the file are
     printed followed by a question mark.  This is a prompt for
     confirmation.  If the answer is affirmative, the file is deleted,
     otherwise the file remains.
     If 
file is a symbolic link, the link is removed, but the file or
     directory to which it refers is not deleted.  Users do not need write
     permission to remove a symbolic link, provided they have write
     permissions in the directory.
     If multiple 
files are specified and removal of a 
file fails for any
     reason, 
rm writes a diagnostic message to standard error, do nothing
     more to the current 
file, and go on to any remaining 
files.
     If the standard input is not a terminal, the utility operates as if the     
-f option is in effect.   
/usr/bin/rmdir     The 
rmdir utility removes the directory entry specified by each 
dirname     operand, which must refer to an empty directory.
     Directories are processed in the order specified.  If a directory and a
     subdirectory of that directory are specified in a single invocation of     
rmdir, the subdirectory must be specified before the parent directory
     so that the parent directory is empty when 
rmdir tries to remove it.   
ksh93     The 
rmdir built-in in 
ksh93 is associated with the 
/bin and 
/usr/bin     paths.  It is invoked when 
rmdir is executed without a pathname prefix
     and the pathname search finds a 
/bin/rmdir or 
/usr/bin/rmdir     executable.     
rmdir deletes each given directory.  The directory must be empty and
     contain no entries other than 
. or 
...  If a directory and a
     subdirectory of that directory are specified as operands, the
     subdirectory must be specified before the parent, so that the parent
     directory is empty when 
rmdir attempts to remove it.
OPTIONS
     The following options are supported for 
/usr/bin/rm and     
/usr/xpg4/bin/rm:     
-r      Recursively removes directories and subdirectories in the
             argument list.  The directory is emptied of files and removed.
             The user is normally prompted for removal of any write-
             protected files which the directory contains.  The write-
             protected files are removed without prompting, however, if the             
-f option is used, or if the standard input is not a terminal
             and the 
-i option is not used.
             Symbolic links that are encountered with this option is not
             traversed.
             If the removal of a non-empty, write-protected directory is
             attempted, the utility always fails (even if the 
-f option is
             used), resulting in an error message.     
-R      Same as 
-r option.   
/usr/bin/rm     The following options are supported for 
/usr/bin/rm only:     
-f      Removes all files (whether write-protected or not) in a
             directory without prompting the user.  In a write-protected
             directory, however, files are never removed (whatever their
             permissions are), but no messages are displayed.  If the
             removal of a write-protected directory is attempted, this
             option does not suppress an error message.     
-i      Interactive.  With this option, 
rm prompts for confirmation
             before removing any files.  It overrides the 
-f option and
             remains in effect even if the standard input is not a terminal.   
/usr/xpg4/bin/rm     The following options are supported for 
/usr/xpg4/bin/rm only:     
-f      Does not prompt for confirmation.  Does not write diagnostic
             messages or modify the exit status in the case of non-existent
             operands.  Any previous occurrences of the 
-i option is
             ignored.     
-i      Prompts for confirmation.  Any occurrences of the 
-f option is
             ignored.   
/usr/bin/rmdir     The following options are supported for 
/usr/bin/rmdir only:     
-p      Allows users to remove the directory 
dirname and its parent
             directories which become empty.  A message is printed to
             standard error if all or part of the path could not be removed.     
-s      Suppresses the message printed on the standard error when 
-p is
             in effect.   
ksh93     The following options are supported for the 
rmdir built-in for 
ksh93:     
-e     --ignore-fail-on-non-empty Ignore each non-empty directory failure.     
-p     --parents Remove each explicit directory argument directory that
             becomes empty after its child directories are removed.     
-s     --suppress Suppress the message printed on the standard error when 
-p             is in effect.
OPERANDS
     The following operands are supported:     
file          Specifies the pathname of a directory entry to be
                   removed.     
dirname       Specifies the pathname of an empty directory to be
                   removed.
USAGE
     See 
largefile(7) for the description of the behavior of 
rm and 
rmdir     when encountering files greater than or equal to 2 Gbyte (2^31 bytes).
EXIT STATUS
     The following exit values are returned:     
0       If the 
-f option was not specified, all the named directory
             entries were removed; otherwise, all the existing named
             directory entries were removed.     
>0      An error occurred.   
ksh93     The following exit values are returned:     
0       Successful completion.  All directories deleted successfully.     
>0      An error occurred.  One or more directories could not be
             deleted.
EXAMPLES
     The following examples are valid for the commands shown.   
/usr/bin/rm, /usr/xpg4/bin/rm     Example 1 Removing Directories
     The following command removes the directory entries 
a.out and 
core:
           example% rm a.out core     
Example 2 Removing a Directory without Prompting
     The following command removes the directory 
junk and all its contents,
     without prompting:
           example% rm -rf junk   
/usr/bin/rmdir     Example 3 Removing Empty Directories
     If a directory 
a in the current directory is empty, except that it
     contains a directory 
b, and 
a/b is empty except that it contains a
     directory 
c, the following command removes all three directories:
           example% rmdir -p a/b/c
DIAGNOSTICS
     All messages are generally self-explanatory.
     It is forbidden to remove the files "
." and "
.." in order to avoid the
     consequences of inadvertently doing something like the following:
           example% rm -r .*
     It is forbidden to remove the file "
/" in order to avoid the
     consequences of inadvertently doing something like:
           example% rm -rf $x/$y
     or
           example% rm -rf /$y
     when 
$x and 
$y expand to empty strings.
ENVIRONMENT VARIABLES
     See 
environ(7) for descriptions of the following environment variables
     that affect the execution of 
rm and 
rmdir: LANG, LC_ALL, LC_COLLATE,
     LC_CTYPE, LC_MESSAGES, and NLSPATH.
     Affirmative responses are processed using the extended regular
     expression defined for the 
yesexpr keyword in the LC_MESSAGES category
     of the user's locale.  The locale specified in the LC_COLLATE category
     defines the behavior of ranges, equivalence classes, and multi-
     character collating elements used in the expression defined for     
yesexpr.  The locale specified in LC_CTYPE determines the locale for
     interpretation of sequences of bytes of text data a characters, the
     behavior of character classes used in the expression defined for the     
yesexpr.  See 
locale(7).
INTERFACE STABILITY
   /usr/xpg4/bin/rm     Committed   
ksh93     The 
ksh93 built-in binding to 
/bin and 
/usr/bin is Volatile.  The
     built-in interfaces are Uncommitted.
SEE ALSO
     ksh93(1), 
rmdir(2), 
unlink(2), 
attributes(7), 
environ(7), 
largefile(7),     
standards(7)NOTES
     A 
- permits the user to mark explicitly the end of any command line
     options, allowing 
rm to recognize file arguments that begin with a 
-.
     As an aid to BSD migration, 
rm accepts 
-- as a synonym for 
-.  This
     migration aid may disappear in a future release.  If a 
-- and a 
- both
     appear on the same command line, the second is interpreted as a file.
illumos                       February 21, 2023                      illumos