什么是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带有-deleteflag的命令也可以达到相同的效果(当您未指定通过进行过滤时-type,这是另一回事了)。
至于-f,它有两件事-一是阻止提示您是否要删除文件(例如,当您从目录中删除另一个用户拥有的文件时,它不会显示rm: remove write-protected regular empty file 'f1'?确认提示),而忽略不存在的文件。因此,例如,使用不存在的文件名,您应该会rm: cannot remove 'nonexistent': No such file or directory出错。
也可以看看: