如何删除目录及其所有内容?

pip*_*ter 182 bash rm

在 bash 中,我所知道的是

rmdir directoryname
Run Code Online (Sandbox Code Playgroud)

将删除目录,但前提是它是空的。有没有办法强制删除子目录?

小智 276

以下命令将为您完成。不过要小心。

rm -rf directoryname
Run Code Online (Sandbox Code Playgroud)

  • “-f”是“--force”,它会覆盖一些健全性检查和提示。一个更安全的命令是`rm -r directoryname`。 (62认同)

sat*_*ter 8

如果rm -rf directoryname失败,请尝试使用rm -R -f directoryname, 或rm --recursive -f directoryname

如果你对这些没有任何运气,你应该考虑重新安装 rm 或切换 shell。


Ski*_*rou 5

其他答案显示了如何完全删除目录 \xe2\x80\x99s 内容,但 IMO 他们没有解决 \xe2\x80\x99t原始帖子 \xe2\x80\x94 的字面问题,即如何删除子目录(与通常的文件相反)。换句话说,如何删除空目录结构,同时保留包含文件\xe2\x80\xaf 的子目录?

\n

find这可以通过\xe2\x80\xaf来实现:

\n
find directoryname -type d -delete\n
Run Code Online (Sandbox Code Playgroud)\n

-type d当目录 ( )的子目录directoryname或其-delete本身不包含任何文件时,此命令才会递归搜索目录 ( ) 。

\n