Linux 中的 rm -rf 命令示例
UNIX 中的 rm 命令代表删除,默认情况下用于删除文件。这是一个简单但功能强大的命令,尤其是与 -rf 等选项一起使用时,它可以强制删除非空目录。
在 Linux 中删除文件:
rm 命令,默认情况下,不能删除目录,只能处理文件。
$ mkdir A
$ touch B.txt
$ rm B.txt
$ rm A
我们使用 mkdir 和 touch 命令分别创建目录和文本文件,使用 ls 命令列出当前工作目录中的文件。
在 Linux 中删除多个文件:
要一次删除多个文件,我们可以在 rm 命令后写入以空格分隔的文件名,或者使用模式删除符合该模式的多个文件。
$ rm a b
$ rm *.txt [Pattern]
在 Linux 中删除目录:
要删除目录,您可以使用 -r 或 -R 开关,这会递归删除目录,包括其内容(子目录和文件)。如果它是一个空目录,您也可以使用 rmdir 命令。
$ rm a/
$ rm -R a/
使用确认提示删除文件:
要在删除文件时获得确认提示,请使用 -i 选项。
$ rm -i a.txt
使用确认提示删除目录:
要在删除目录及其子目录时获得确认提示,请使用 -R 和 -i 选项。
$ rm -Ri A/
强制删除文件或目录:
要强制删除文件或目录,您可以使用选项 -f 强制删除操作,而 rm 不会提示您确认。例如,如果一个文件不可写,rm 会提示您是否删除该文件,以避免这种情况并简单地执行操作。
$ rm -f a.txt
当您结合使用 -r 和 -f 标志时,这意味着您在不提示确认的情况下以递归方式强行删除目录(及其内容)。
$ rm -rf B
在这里,我们创建了一个文本文件和目录,并通过使用 chmod 命令获取其写访问权限将其设为只读。
删除时显示信息:
要在删除文件或目录时显示更多信息,请使用 -v 选项,这将使 rm 命令能够在标准输出上显示正在执行的操作。
$ rm -rv *
rm -rf 命令是防弹的吗?
rm -rf 功能强大,只能绕过嵌套文件的只读访问,而不能绕过目录。要删除目录( B/C ),我们需要通过超级用户权限访问它。
It is not recommended to use this command as a superuser if you are not 100% sure what you are doing as you can delete important files.
“rm -Rf /”命令:
你应该永远记住“rm -rf”是最危险的命令之一,你永远不应该在 Linux 系统上运行,尤其是作为 root。以下命令将清除 root(/) 分区上的所有内容。
$ sudo rm -rf /
有一些检查可以防止根删除,但附加选项–no-preserve-root绕过故障安全。网上的一个梗,相当于在你的windows os C:\驱动器中删除system32。
$ sudo rm -rf / --no-preserve-root
在任何情况下你都不应该使用上面的命令,对于好奇的人,我使用带有 –no-preserve-root 的命令。在删除了一些重要的文件和目录之后,我只剩下如下所示的挂断输出。
在 Linux 中为 rm 命令创建别名:
要永久使用 -i 选项以确保安全,请在$HOME/.bashrc 文件中添加别名。
alias rm="rm -i"
如图所示获取 .bashrc 文件或打开一个新终端以使更改生效。
$ source $HOME/.bashrc
现在,每当您执行 rm 时,默认情况下都会使用 -i 选项调用它(但使用 -f 标志将覆盖此设置)。
rm 真的删除文件吗?
rm 实际上并不删除文件,而是取消链接它们(释放内存以供进一步使用)。要永久删除数据,您可以使用 shred 或 dd 命令。