在bash中,我所知道的是

rmdir directoryname


将删除目录,但前提是该目录为空。有办法强制删除子目录吗?

#1 楼

以下命令将为您完成此操作。但是请务必小心。

rm -rf directoryname


评论


“ -f”是“ --force”,它覆盖了一些健全性检查和提示。最安全的命令开头应该是rm -r directoryname。

–吉姆·巴黎(Jim Paris)
2012年8月17日在3:35



由于某种原因,我得到一个rm:无效选项-尝试使用rm -r <目录名>删除目录时出现r错误。

–太阳神
2015年5月26日15:58

@Sunspawn检查此相关问题,看是否是这种情况。

– Marc.2377
16年7月3日,9:50

@JimParis我认为“更安全”一词是相对的。假设您正在编写脚本以在远程计算机上运行。该脚本具有应该删除目录的命令。在这里,使用rm -rf目录名coz会“更安全”,因为您不想让脚本暂停执行,因为它正在等待用户输入。当然,您必须确保删除目录不会造成损害。

– John Red
16-9-28在10:08

#2 楼

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

如果运气不好,则应考虑重新安装rm或切换外壳。

评论


这些是我的rm手册页上可用的选项,我通过键入man rm进行查找以查看有关递归删除的选项和force选项。

–saterHater
15年11月11日在18:38

您的rm手册页列出了-r吗?它有什么作用? (尝试在仅用于测试目的而创建的目录中尝试该目录,其中仅包含虚拟文件(可能还有子目录)。)您正在使用什么操作系统?

– G-Man说“恢复莫妮卡”
15年11月11日在19:08

附言如果rm -r不起作用,那将是操作系统问题,而不是外壳问题。 (严格来说,这是您所使用的rm版本的问题,因此您可以通过安装其他版本的rm或搜索系统以查看某些版本中是否已经存在其他版本的rm来解决该问题。 / bin以外的目录。)

– G-Man说“恢复莫妮卡”
2015年11月11日在21:34

嗯对我忘了提到我在Ubuntu 14.04上,当我在终端上运行man rm时,它给了我一个带有较少文本查看器的文本文件。我滚动查看了一个带有整体的缩进条目,该条目的-R和--recursive选项与-r选项结合在一起,表示所有这些参数都是相同的。

–saterHater
2015年11月11日在22:38



编辑:您是否尝试过sudo rm -r directoryName?基本命令的不成文规则是-r将允许程序在文件系统上的每个文件上递归运行(从您选择的任何地方开始!),并且-f将强制执行操作,即使这样做很危险。 'cd','mv','ls'基本上保持了这一原理。 ls -r /将成为一个笨蛋,而cp -rf / / dev / null将破坏文件系统上的所有内容。 <-永远不要运行该命令!

–saterHater
2015年11月11日在22:49