用途
除去(解链)文件或目录。
语法
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 有错误发生。
示例
1. 删除文件,输入:
rm myfile
如果有到此文件的别的链接,则文件仍在那个名称下,但是除去了名称 myfile。如果 myfile 是其仅有的链接,则删除文件本身。
2. 要不先接收确认提示而删除文件,输入:
rm -f core
在 rm -f 命令试图除去名为 core 的文件前不发送确认提示。然而,如果 core 文件为写保护并且你不是文件的所有者或你没有 root 权限,显示
错误消息。当 rm -f 命令试图除去不存在的文件时不显示错误消息。
3. 要一个一个的删除文件,输入:
rm -i mydir/*
显示每个文件名后,输入 y 来删除文件,或按下 Enter 键来保留它。
4. 要删除目录树,输入:
rm -ir manual
本命令循环地除去 manual 目录的所有子目录的内容,提示注意每一个文件的除去,然后除去 manual 目录本身,例如:
你: rm -ir manual
系统: rm: Select files in directory manual? Enter y for yes.
你: y
系统: rm: Select files in directory manual/draft1? Enter y for yes.
你: y
系统: rm: Remove manual/draft1?
你: y
系统: rm: Remove manual/draft1/chapter1?
你: y
系统: rm: Remove manual/draft1/chapter2?
你: y
系统: rm: Select files in directory manual/draft2? Enter y for yes.
你: y
系统: rm: Remove manual/draft2?
你: y
系统: rm: Remove manual?
你: 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 命令。
没有评论:
发表评论