rm -rf做什么?
用于删除文件或目录时rm -rf
做了什么?
-r
和-f
选项如何协同工作?
命令rm -rf
与rm -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需要数小时