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

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

如何删除以下目录?

我输入:

rmdir lampp

出现此错误:

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

有没有命令可以删除目录中的所有文件以及删除目录文件夹?

答案1

使用以下命令:

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= 忽略不存在的文件,从不提示
  • -r= 递归删除目录及其内容
  • -v= 解释正在做的事情

答案2

rm -R lampp

但是,您需要小心使用这样的递归命令,因为很容易意外删除比您预期更多的内容。

在按下 Enter 键之前,最好始终仔细检查您所在的目录以及是否正确输入了命令。

更安全的版本

rm -R -i lampp

添加-i会更安全一些,因为每次删除时都会提示你。但是,如果你要删除很多文件,这种方法就不太实用了。不过,你可以先试试这个。

注意 -f 选项:

许多人建议使用-f(将其合并到-Rf或中-rf),声称它可以摆脱烦人的提示。然而,在正常情况下你不需要它,使用它可以抑制一些你可能遇到的问题想要了解。使用它时,如果您的参数提供的目录或文件不存在,您将不会收到警告:rm 将默默地无法删除任何内容。一般来说,请先尝试不使用-f:如果您的参数有问题,那么您会注意到。如果您开始收到太多有关没有写权限的文件的提示,那么您可以尝试使用-f。或者,从对您要删除的文件和目录具有完全权限的用户(或使用 sudo 的超级用户)运行命令,以首先防止这些提示。

答案3

通过 CLI 模式删除目录的方法有很多种。这取决于您习惯使用哪种方式。

rm -rvf /path/to/directory  
  • -r = 递归删除目录及其内容
  • -v = 解释正在做什么
  • -f = 忽略不存在的文件,从不提示

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

答案4

我今天遇到了一些麻烦,但我用 sudo 解决了它。

警告:在使用以下命令之前,请确定您要删除整个内容。

$ sudo rm -R [Directory name]

我今天成功地做到了这一点,并删除了许多我确认不想要/不需要的非空目录。

我正在使用 14.04 LTS

相关内容