名称
[INDENT][INDENT]rm - 删除目录项
[/INDENT][/INDENT]
语法
[INDENT][INDENT]rm [-dfiPRr] file ...
[/INDENT][/INDENT]
描述
[INDENT][INDENT]rm程序删除指定的非目录类型文件。 如果文件不允许写操作,而且标准的输入设备是一个终端,
则用户被提示(会出现一个标准的错误信息)要求确认。
选项如下:
-d 删除目录及其它类型的文件。
-f 不考虑文件的许可,删除文件并不给予确认提示。如果该文件不存在,不显示诊断信息,
或修改推出状态已反映这个错误。 -f 选项会覆盖前面所有的 -i 选项。
-i 不考虑文件的许可,也不管标准的输入设备是否为终端,删除每个文件前都需要先进行
确认, -i 选项会覆盖任何前面的 -f 选项。
-P 在删除常规文件前重写它们。在被删除前,待删除文件会被重写三次, 首先用字节模式 0xff,
然后 0x00,最后再用 0xff 。文件如果有多个链接,将释放这些链接,但是并不重写。
-R 删除位于每个文件参数下的文件层次结构。 -R 选项意味着 -d 选项。如果指定了 -i 选项,
会要求用户在删除每个目录(及其内容)前进行确认。 如果用户未给出肯定的回复,则该目录
下的文件层次结构在执行操作时将跳过。
-r 等同于 -R.
rm工具删除符号链接, 但是不删除链接所指的文件。
如果想删除 ``.'' or ``..'',系统会产生一条错误信息. 系统拒绝删除 ``..'' 文件,
这不过是为了避免无意的误操作结果导致像``rm -r .*''这样的结果。
如果所有的文件或文件层次被成功删除,或者如果指定了 -f 选项,并且所有存在的
文件或文件结构层次全被删除了,rm程序返回。 如果出现错误, rm退出并返回一个
>0的值。
[/INDENT][/INDENT]
例子
[INDENT][INDENT]递归地删除包含在foobar目录结构下的所有文件:
代码: 全选
$ rm -rf foobar
这些带 -f 参数的命令也可以删除文件:
代码: 全选
$ rm -- -f
$ rm ./-f
[/INDENT][/INDENT]也请参阅
[INDENT][INDENT]rmdir(1), unlink(2), fts(3), symlink(7)
[/INDENT][/INDENT]
标准
[INDENT][INDENT]rm程序遵守IEEE Std 1003.1-2008 (``POSIX'')规范。
标签 [-dP] 是对该规范的扩展。
rm程序不同于以往的实现方式,-f 选项仅掩饰删除不存在文件的错误信息,
而不掩饰大量各类错误。
同样, 历史上BSD在标准输出上显示提示信息, 不是标准的错误输出。
交互模式被当作一个 dsw 命令, 来源于缘故一个有趣的词源。
IEEE Std 1003.1-2008 (``POSIX'') 要求当被指定的文件时一个目录时,要求rm使用 rmdir(1) 命令的功能。
如果希望如此你需要使用 -d 参数, 这与rm以往如何看待目录有关。
[/INDENT][/INDENT]历史
[INDENT][INDENT]rm命令起始于 Version 1 AT&T UNIX.
[/INDENT][/INDENT]
BUGS
[INDENT][INDENT]The -P option assumes that the underlying file system is a fixed-block
file system, such as UFS. In addition, only regular files are overwrit-
ten, other types of files are not.
[/INDENT][/INDENT]
OpenBSD 4.6 February 8, 2009 2