手册页部分 1: 用户命令

退出打印视图

更新时间: 2014 年 7 月
 
 

rm(1)

名称

rm , rmdir - 删除目录条目

用法概要

/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...

描述

/usr/bin/rm /usr/xpg4/bin/rm

rm 实用程序会删除每个 file 参数指定的目录条目。如果一个文件没有写入权限,且标准输入为终端,该文件的完整权限集(八进制)后会输出一个问号。这是确认提示。如果回答为肯定,则删除文件,否则保留文件。

如果 file 为一个符号链接,则删除链接,但不删除该链接引用的文件或目录。只要用户在目录中拥有写入权限,则用户无需写入权限即可删除符号链接。

如果指定了多个 file,且 file 删除操作由于任何原因失败,则 rm 会向标准错误写入一条诊断消息,不再对当前 file 进行更多操作,并继续处理余下的 file

如果标准输入不是终端,那么实用程序将按照 –f 选项生效的方式操作。

/usr/bin/rmdir

rmdir 实用程序会删除每个 dirname 操作数指定的目录条目,但操作数必须引用一个空目录。

目录按照指定的顺序处理。如果 rmdir 的单次调用中指定了一个目录及其子目录,那么子目录必须在父目录之前指定,因此 rmdir 试图删除父目录时,该父目录将为空。

选项

/usr/bin/rm/usr/xpg4/bin/rm 支持以下选项:

–r

递归删除参数列表中的目录和子目录。目录中不含文件,且已被删除。正常情况下,系统将提示用户删除目录包含的任何写入保护文件。但是,如果使用了 –f 选项,或者如果标准输入不是终端且未使用了 –i 选项,系统会在不提示的情况下删除写入保护文件。

系统不会遍历此选项遇到的符号链接。

如果尝试删除非空、写入保护的目录,实用程序始终会失败(即使是使用了 –f 选项),并生成错误消息。

–R

–r 选项相同。

/usr/bin/rm

/usr/bin/rm 仅支持以下选项:

–f

在不提示用户的情况下删除目录中的文件(即使文件为写入保护)。然而,在写入保护的目录中,系统始终不会删除文件(无论其拥有怎样的权限),且不会显示消息。

–i

交互。使用此选项时,rm 会在删除任何文件之前都提示用户确认。它会覆盖 –f 选项,并始终有效,即使标准输入不是终端。

/usr/xpg4/bin/rm

/usr/xpg4/bin/rm 仅支持以下选项:

–f

不提示用户确认。遇到不存在的操作数时,不写入诊断消息或修改退出状态。忽略此前出现的任何 –i 选项。

–i

提示用户确认。忽略出现的任何 –f 选项。

/usr/bin/rmdir

/usr/bin/rmdir 仅支持以下选项:

–p

允许用户删除目录 dirname 及其变空的父目录。如果无法删除全部或部分路径,则会向标准错误输出一条消息。

–s

–p 生效时,隐藏在标准错误上输出的消息。

操作数

支持下列操作数:

file

指定要删除的目录条目的路径名。

dirname

指定要删除的空目录的路径名。

用法

有关 rmrmdir 遇到大于或等于 2 GB(231 字节)文件时行为的说明,请参见 largefile(5)

示例

以下示例对于显示的命令有效。

/usr/bin/rm, /usr/xpg4/bin/rm

示例 1 删除目录

以下命令将删除目录条目 a.outcore

example% rm a.out core
示例 2 在不提示的情况下删除目录

以下命令将在不提示的情况下删除目录 junk 及其所有内容:

example% rm -rf junk

/usr/bin/rmdir

示例 3 删除空目录

如果当前目录中的目录 a 为空(除了包含一个目录 b)且 a/b 为空(除了包含一个目录 c),那么以下命令将删除所有三个目录:

example% rmdir -p a/b/c

环境变量

有关影响 rmrmdir 执行的 LANG、LC_ALL、LC_COLLATE、LC_CTYPE、LC_MESSAGES 和 NLSPATH 环境变量的描述,请参见 environ(5)

肯定的回答使用为用户语言环境中 LC_MESSAGES 类别的 yesexpr 关键字定义的扩展正则表达式进行处理。LC_COLLATE 类别中指定的语言环境定义为 yesexpr 定义的表达式中使用的范围、等效类和多字符整理元素的行为。LC_CTYPE 中指定的语言环境确定文本数据字符字节序列解释的语言环境,以及为 yesexpr 定义的表达式中使用的字符类的行为。请参见 locale(5)

退出状态

将返回以下退出值:

0

如果未指定 –f 选项,则会删除所有指定目录条目;否则会删除所有现有的指定目录条目。

>0

出现错误。

属性

有关下列属性的说明,请参见 attributes(5)

/usr/bin/rm, /usr/bin/rmdir

属性类型
属性值
可用性
system/core-os
CSI
Enabled(已启用)

/usr/xpg4/bin/rm

属性类型
属性值
可用性
system/xopen/xcu4
CSI
Enabled(已启用)
接口稳定性
Committed(已确定)
标准
请参见 standards(5)

另请参见

rmdir(2)unlink(2)attributes(5)environ(5)largefile(5)standards(5)

诊断

禁止删除文件 “.” 和 “..”,以避免无意间执行以下类似操作造成的后果:

example% rm -r .*

禁止删除文件 “/”,以避免无意间执行以下类似操作造成的后果:

example% rm -rf $x/$y

example% rm -rf /$y

$x$y 扩展为空字符串时。

附注

允许用户显式标记任何命令行选项的结尾,以让 rm 识别以 开始的文件参数。作为 BSD 迁移的辅助功能,rm 接受 − − 作为 的等效字符。此迁移助手在未来版本中可能不再提供。如果 − − 同时出现在同一行中,则会将第二个解释为文件。