rm -rf做什么?

用于删除文件或目录时rm -rf做了什么?

-r-f选项如何协同工作?

命令rm -rfrm -r -f相同。

rm的手册页(在终端中键入man rm来查看) -r确实:

 remove directories and their contents recursively 

-f确实:

 ignore nonexistent files and arguments, never prompt 

所以结合起来他们两个都做。

事实上,它是一个非常危险的命令,因为它会以递归方式删除您选择的目录中的所有内容(或者只是删除您选择的文件),并且它会在没有提示您的情况下执行此操作。

请小心使用此命令!

除了以前的正确答案,我想教你如何钓鱼:

当您不确定命令如何工作,有哪些选项以及它做什么时,请打开终端并键入

 man  

例如:

 man rm 

进入后,您可以搜索该选项。 手册页可能真的很长,所以在终端类型中:

 / 

例如,做:

 /-f 

您可以轻松降落到:

 -f, --force ignore nonexistent files and arguments, never prompt 

对于-r做:

 -r, -R, --recursive remove directories and their contents recursively 

您可以使用n (下一个)和N (上一个)在搜索结果之间移动。

奖金:

如果您需要执行某些操作,但不知道命令名称,请使用apropos在手册页中进行搜索:

 apropos  

例如:

 apropos directory listing 

rm是删除的简称。 r标志是递归删除目录及其内容, f表示强制,它会覆盖任何确认提示。

正如已经提到的, rm -rf 旨在递归地强制删除文件,其中是一个目录(尽管它可以是一个文件就好了)。

-r (递归删除)的重点是rm如果不是空的话就不能删除目录,只是因为rm使用的基础系统调用( unlink )只在空目录上运行。 因此, -r标志的作用是深度优先搜索下降到目录并首先删除文件,然后只有当目录为空时 – 它将删除它。 通过带有-delete标志的find命令可以实现同样的效果(当你没有按-type指定过滤时,这是另一个故事)。

对于-f ,它做了两件事 – 一件事阻止提示您是否要删除文件(例如当您从目录中删除另一个用户拥有的文件时,它不会显示rm: remove write-protected regular empty file 'f1'?确认提示),并忽略不存在的文件。 因此,例如,使用不存在的文件名,您应该得到rm: cannot remove 'nonexistent': No such file or directory错误。

也可以看看:

  • 为什么允许rm删除其他用户所有权下的文件?
  • 在大型目录树上执行rm -rf需要数小时