Linux如何递归删除目录

在 Linux 中处理文件和目录时,可能会遇到的一个常见问题是删除非空目录。

大多数用户可能很少使用终端,甚至我们这些使用过的用户可能仍然不记得如何使用这些命令。
对我来说,记住参数比记住命令本身更难,我经常想知道为什么不只拥有一个自动执行我们期望的“智能”命令。

我们不能使用 rmdir ,因为这会导致如下错误:

rmdir:无法删除“dirName/”:目录不为空

关于为什么这是默认行为的简单答案,大概是为了避免用户可能意外删除整个目录及其内容的错误。

解决方案是使用带有递归 -r 标志的 RM 命令:

rm -r directory

为了避免收到有关每个文件的提示,我们还应该包含 -f 标志:

rm -rf directory

如果我们觉得这种行为很烦人,我们可以将自己的删除脚本添加到 ~/local/bin 文件夹中。

通常,我们只需创建一个简单的包装 shell 脚本,而不是我们自己编译的替换。

#!/bin/bash
# Example of a simple wrapper script to delete a file- and/or directory (including contents) without asking,
# The purpose is to avoid the need to remember typing rm -rf as "delete" is more intuitive to users
# Usage: start typing "del" in a terminal, and then hit tab to autocomplete. I.e.: deleteit /path/to/directory
rm -rf 
日期:2020-06-02 22:17:32 来源:oir作者:oir