rm 命令
用途
除去(解链)文件或目录。
语法
rm[-f] [-r] [-R] [-i] [-e]File...
描述
rm命令从目录中除去指定的File参数的项。如果项为到文件的最后链接,则删除这个文件。如果没有对文件的写许可权且标准输入为终端,提示输入文件名并询问以确认你想要删除该文件。如果输入y(即“是”)则删除文件,输入另外的字符则不删除文件。不需要对你想要除去的文件的读或写许可权。然而,对于包含文件的目录你必须有写许可权。
如果文件是符号链接,则除去链接,但是符号链路引用的文件或目录仍在。如果您有目录的写许可权,则不需要文件的写许可权就能删除符号链路。
如果任一文件(.点)或..(点,点)被指定为File参数的基本名部分,rm命令写诊断信息到标准错误且不再对此类参数执行任何操作。
如果没有指定-f标志、且要么File参数没有写许可权、标准输入为工作站,要么指定了-i标志,rm命令写提示到标准错误并从标准输入读取一行。如果没有确认响应,rm命令不再对当前文件做任何操作并继续处理下一个文件。
如果设置了目录粘滞位而目录不为用户所有,其它用户所有的文件不能被除去。
注: rm命令支持 --(破折号,破折号) 参数作为表示标志结束的定界符。
标志
-e | 在每一个文件被删除后显示消息。 |
-f | 在除去有写保护的文件前不提示。如果指定的文件不存在,不显示错误消息或返回错误状态。如果-f和-i标志都被指定,最后指定的标志起作用。 |
-i | 删除每个文件前提示。但一起使用-i和-r标志时,rm命令在删除目录前也提示。如果-i和-f标志都被指定,最后指定的标志起作用。 |
-r | 当File参数为目录时允许循环的删除目录及其内容。本标志等同于-R标志。 |
-R | 当File参数为目录时允许循环的删除目录及其内容。本标志等同于-r标志。 |
退出状态
命令返回下列出口值:
0 | 如果没有指定-f标志,除去所有指定的目录项;否则,除去所有现有的指定目录项。 |
>0 | 有错误发生。 |
示例
- 删除文件,输入:
rmmyfile
如果有到此文件的别的链接,则文件仍在那个名称下,但是除去了名称myfile。如果myfile是其仅有的链接,则删除文件本身。
- 要不先接收确认提示而删除文件,输入:
rm-fcore在rm -f命令试图除去名为core的文件前不发送确认提示。然而,如果core文件为写保护并且你不是文件的所有者或你没有 root 权限,显示错误消息。当rm -f命令试图除去不存在的文件时不显示错误消息。
- 要一个一个的删除文件,输入:
rm-imydir/*显示每个文件名后,输入y来删除文件,或按下 Enter 键来保留它。
- 要删除目录树,输入:
rm -ir manual
本命令循环地除去manual目录的所有子目录的内容,提示注意每一个文件的除去,然后除去manual目录本身,例如:你:rm-irmanual 系统:rm:Selectfilesindirectorymanual?Enteryforyes. 你:y 系统:rm:Selectfilesindirectorymanual/draft1?Enteryfor yes. 你:y 系统:rm:Removemanual/draft1? 你:y 系统:rm:Removemanual/draft1/chapter1? 你:y 系统:rm:Removemanual/draft1/chapter2? 你:y 系统:rm:Selectfilesindirectorymanual/draft2?Enteryfor yes. 你:y 系统:rm:Removemanual/draft2? 你:y 系统:rm:Removemanual? 你:y
这里,rm命令首先询问你是否要搜索manual目录。由于manual目录包含目录,rm命令接着询问是否允许为删除文件搜索manual/draft1中的文件,然后询问是否想要删除manual/draft1/chapter1和manual/draft1/chapter2文件。rm命令接着询问是否允许搜索manual/draft2目录。然后询问是否允许删除manual/draft1、manual/draft2和manual目录。
如果拒绝许可除去子目录(例如,manual/draft2),rm命令不除去manual目录。那样,你将看见消息:rm:目录 manual 未清空。
文件
/usr/bin/rm | 包含rm命令。 |