如何删除当前目录(包括当前目录)中的所有文件和子目录?

有帮助吗?

解决方案

在使用 GNU 工具的 bash 下,我会这样做(在大多数情况下应该是安全的):

rm -rf -- "$(pwd -P)" && cd ..

不在 bash 下并且没有 GNU 工具,我会使用:

TMP=`pwd -P` && cd "`dirname $TMP`" && rm -rf "./`basename $TMP`" && unset TMP

为什么这更安全:

  • 参数列表结尾为 -- 如果我们的目录以破折号开头(非 bash: ./ 文件名之前)
  • pwd -P 不只是 pwd 如果我们不在真实目录中而是在指向它的符号链接中。
  • "如果目录包含空格,则在参数周围加上 s

一些随机信息(bash版本):

  • cd .. 最后可以省略,但否则你将位于一个不存在的目录中......

编辑:正如 kmkaplan 指出的那样, -- 事情没有必要,因为 pwd 返回始终以以下字符开头的完整路径名 / 在 UNIX 上

其他提示

olddir=`pwd` && cd .. && rm -rf "$olddir"

是需要的cd ..,否则会失败,因为不能删除当前目录。

rm -fr "`pwd`"

我认为这将是在DOS / Windows的CMD可能的,但我不能完全找到一种方法来管命令之间的数据。其他人可能知道的修补程序是什么?

FOR /F %i IN ('cd') DO SET MyDir=%i | CD .. | RD /S %MyDir%

操作系统?在基于* NIX-的东西,你正在寻找“室射频目录/”

请注意:关于“递归”的“-r”标志可以是危险的

您才可以回去目标文件夹的父文件夹,然后使用“室射频yourFolder”。 或者您可以使用“室射频*”从当前文件夹中删除所有文件和子文件夹。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top