为什么 rm -rf 不产生错误?

Stu*_*Stu 2 rm ubuntu

ubuntu 9.10 如果你输入 rm 你会得到一个缺失的操作数错误,同样的事情 rm -r 但 rm -f 不会产生错误。-f 应该是“强制”而不是“消除错误”

小智 10

SUSv3 说:

-f 不提示确认。在操作数不存在的情况下,不要写入诊断消息或修改退出状态。任何之前出现的 -i 选项都将被忽略。


MDM*_*rra 8

来自Unix 联机帮助页

-f, --force
忽略不存在的文件,从不提示

忽略不存在的文件意味着如果没有要删除的文件,则不会出现错误,这就是在未指定文件的情况下使用 rm -f 时发生的情况。据我所知,这是预期的行为。它不会忽略所有错误,但 -f 不需要将文件列为操作数,因此不会抛出错误。

  • @nixomose 除非指定了 -f :)。关键是您可以在命令行上指定多个文件。如果缺少其中任何一个并且您没有通过 -f,则会出现错误。如果你通过 -f,任何与文件相关的错误都会被抑制。 (3认同)
  • 对我来说似乎有点可疑,手册页说: rm [OPTION]... FILE... as in FILE is not optional. (2认同)
  • +1 对于 nixomose,“但是 -f 不需要将文件列为操作数”是毫无意义的。您链接到的手册页声称没有这样的事情,并且实际明确地根据需要声明了它。这只是手册页和程序行为不匹配的情况。需要更新手册页以更准确地反映“f”开关的效果 (2认同)