什么是rm -rf
用来删除文件或目录的时候怎么办?
-r
和-f
选项如何一起使用?
什么是rm -rf
用来删除文件或目录的时候怎么办?
-r
和-f
选项如何一起使用?
Answers:
命令rm -rf
与相同rm -r -f
。
从rm
的手册页(输入man rm
终端以查看它)中-r
可以:
remove directories and their contents recursively
并-f
做:
ignore nonexistent files and arguments, never prompt
因此,两者结合使用。
请谨慎使用此命令!
rm -rf /
理论上,它将删除计算机上位于您具有写许可权的目录中的每个文件。如果您是root用户,则意味着要清除整个系统。(在实践中,这是行不通的,因为GNU rm
有一个特殊情况,rm -r /
除非您也说了,否则拒绝允许--no-preserve-root
。)
rm -rf /
查看是否被正确捕获。
除了先前的正确答案之外,我还要教您如何钓鱼:
当您不确定命令的工作方式,具有的选项和功能时,请打开终端并输入
man <command>
例如:
man rm
进入那里后,您可以搜索该选项。手册页可能真的很长,因此在终端中输入:
/<pattern>
因此,例如,执行以下操作:
/-f
您可以轻松登陆:
-f, --force
ignore nonexistent files and arguments, never prompt
对于-r,请执行以下操作:
-r, -R, --recursive
remove directories and their contents recursively
您可以使用n
(下一个)和N
(上一个)在搜索结果之间移动。
如果需要执行某些操作,但不知道命令名称,请使用它apropos
来搜索手册页:
apropos <pattern>
例如:
apropos directory listing
rm
是删除的简称。该r
标志用于递归删除目录及其内容f
,并强制执行,它会覆盖所有确认提示。
r flag is to remove directories
是不对的。它会删除目录及其内容,这是递归操作。根据您的话,它只会删除目录,子目录及其下的文件呢?因为目录条目仅包含名称
如前所述,rm -rf <ARG>
它旨在递归地强制删除文件,<ARG>
目录在哪里(尽管可以是文件就可以了)。
-r
(递归删除)的全部要点在于,rm
如果目录不为空,则无法删除目录,这仅仅是因为rm
使用(unlink)的基础系统调用仅在空目录上运行。因此,-r
标志的作用是深度优先搜索到目录并先删除文件,然后只有在目录为空时才将其删除。通过find
带有-delete
flag的命令也可以达到相同的效果(当您未指定通过进行过滤时-type
,这是另一回事了)。
至于-f
,它有两件事-一是阻止提示您是否要删除文件(例如,当您从目录中删除另一个用户拥有的文件时,它不会显示rm: remove write-protected regular empty file 'f1'?
确认提示),而忽略不存在的文件。因此,例如,使用不存在的文件名,您应该会rm: cannot remove 'nonexistent': No such file or directory
出错。
也可以看看: