rm 命令

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 有错误发生。

示例

  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/draft1manual/draft2和 manual 目录。

    如果拒绝许可除去子目录(例如,manual/draft2),rm 命令不除去 manual 目录。那样,你将看见消息:rm: 目录 manual 未清空

文件

/usr/bin/rm 包含 rm 命令。
阅读更多
文章标签: file 终端 工作
个人分类: 技术文档 unix 命令
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭