rm -rf 有什么作用?

Tel*_*Why 39 delete files directory

什么是rm -rf用来删除文件或目录的时候怎么办?

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

小智 64

命令rm -rfrm -r -f.

Fromrm的手册页(man rm在终端中输入以查看它)-r执行以下操作:

remove directories and their contents recursively
Run Code Online (Sandbox Code Playgroud)

并且-f

ignore nonexistent files and arguments, never prompt
Run Code Online (Sandbox Code Playgroud)

所以结合起来,他们两者兼而有之。

事实上,这是一个非常危险的命令,因为它会递归地删除您选择的目录中的所有内容(或者只是删除您选择的文件),并且它不会提示您这样做。

请谨慎使用此命令!

  • 尽管如此,我不建议尝试使用 `rm -rf /` 来查看它是否被正确捕获。 (13认同)
  • @Octopus,斜线本身表示根目录。`rm -rf /` 理论上将删除您计算机上驻留在您具有写入权限的目录中的每个文件。如果您是 root,则意味着要清除整个系统。(实际上,它不起作用,因为 GNU `rm` 有一个特殊情况,它拒绝允许 `rm -r /`,除非你也说 `--no-preserve-root`。) (2认同)
  • @mattburnett 在虚拟机中也很危险:您可能拥有非虚拟机本地的挂载。特别是,我认为在 VM 上挂载主机目录之一以在主机和 VM 之间共享文件是相当普遍的。 (2认同)

Fed*_*nzi 26

除了前面的正确答案,我还要教大家钓鱼:

当您不确定命令的工作方式、选项有哪些以及它的作用时,请打开终端并键入

man <command>
Run Code Online (Sandbox Code Playgroud)

例如:

man rm
Run Code Online (Sandbox Code Playgroud)

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

/<pattern>
Run Code Online (Sandbox Code Playgroud)

例如,这样做:

/-f
Run Code Online (Sandbox Code Playgroud)

您可以轻松登陆:

-f, --force
              ignore nonexistent files and arguments, never prompt
Run Code Online (Sandbox Code Playgroud)

输入后/-r你会得到:

-r, -R, --recursive
              remove directories and their contents recursively
Run Code Online (Sandbox Code Playgroud)

您可以使用n(next) 和N(previous)在搜索结果之间移动。

奖金:

如果您需要做某事,但您不知道命令名称,请使用apropos在手册页中搜索:

apropos <pattern>
Run Code Online (Sandbox Code Playgroud)

例如:

apropos directory listing
Run Code Online (Sandbox Code Playgroud)


Chr*_*ris 8

rm是 remove 的缩写。该r标志是递归删除目录及其内容并f强制执行,它会覆盖任何确认提示。

  • 严格来说`r标志是删除目录`是不对的..它删除目录及其内容,这是一个递归操作..根据你的话,它只会删除目录,它下的子目录,文件呢? 由于目录条目仅包含名称-索引节点映射,因此这没有任何意义。 (3认同)