当前位置: 首页>>技术问答>>正文


如何删除终端中的非空目录?

,

问题描述

我如何删除以下目录?

我输入了:

rmdir lampp

出现此错误:

rmdir: failed to remove `lampp': Directory not empty

是否有命令删除目录中的所有文件并删除目录文件夹?

最佳解决方案

使用下面的命令:

rm -rf lampp

它删除lampp目录中包含的所有文件和文件夹。

如果用户没有权限删除该文件夹:

在命令开始处添加sudo

sudo rm -rf folderName

否则,如果没有sudo,则会返回权限被拒绝。在删除目录时尽量不要使用-f是个好习惯:

sudo rm -r folderName

注意:假设您已经在终端中想要删除的文件夹的相同级别,如果没有:

sudo rm -r /path/to/folderName

仅供参考:您可以使用字母-f-r-v

  • -f =忽略non-existent文件,从不提示

  • -r =递归删除目录及其内容

  • -v =解释正在做什么

次佳解决方案

rm -R lampp

但是,您需要谨慎使用像这样的递归命令,因为很容易意外删除比您想要的更多的东西。

始终double-check您所在的目录以及是否在按Enter之前正确键入命令是一个好主意。

更安全的版本

rm -R -i lampp

添加-i使其更安全一些,因为它会在每次删除时提示您。但是,如果你删除了很多文件,这不会很实际。不过,你可以先尝试一下。

关于-f选项的说明:

许多人建议使用-f(将其合并到-Rf-rf中),声称它摆脱了烦人的提示。但是,在正常情况下,您不需要它,并且使用它可以抑制您可能想知道的一些问题。当你使用它的时候,如果你的参数提供了一个non-existing目录或者文件,你将不会被警告:rm只会默默无法删除任何东西。作为一般规则,首先不要使用-f:如果您的论点有问题,那么您会注意到。如果您开始针对无法写入权限的文件发出太多提示,则可以使用-f进行尝试。或者,从用户(或使用sudo的超级用户)运行命令,该用户对您正在删除的文件和目录具有完全权限,以便首先防止这些提示。

第三种解决方案

有很多方法可以通过CLI模式删除一个目录。这取决于你对哪种方式感到满意。

rm -rvf /path/to/directory  
  • -r =递归地删除目录及其内容

  • -v =解释正在做什么

  • -f =忽略不存在的文件,从不提示

如果您是Linux新手,请使用命令手册页(man rm)以获得更多选项和更高的准确性。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/30.html,未经允许,请勿转载。